线索二叉树

✍ dations ◷ 2025-12-06 12:04:39 #

在计算机科学中,二叉树添加了直接指向节点的前驱和后继的指针的二叉树称为线索二叉树。

线索二叉树(引线二叉树) 的定义如下:

“一个二叉树通过如下的方法“穿起来”:所有原本为空的右(孩子)指针改为指向该节点在中序序列中的后继,所有原本为空的左(孩子)指针改为指向该节点的中序序列的前驱。”

线索二叉树能线性地遍历二叉树,从而比递归的 中序遍历更快。使用线索二叉树也能够方便的找到一个节点的父节点,这比显式地使用父亲节点指针或者栈效率更高。这在栈空间有限,或者无法使用存储父节点的栈时很有作用(对于通过深度优先搜索来查找父节点而言)。考虑这样的例子:一个节点有一个右孩子,那么的左指针可能是指向一个孩子节点,或是一个指回的线索。如果有左孩子,这个左孩子同样也应该有一个左孩子或是指回的线索。对于所有的左孩子同理。因此沿着这些从发出的左指针,我们最终会找到一个指回的线索。这种特性是对称的:当是的左孩子时,我们可以沿着的右孩子找到一个指回的线索。

传统的二叉树一般都是以链式存储的结构来表示。这样,二叉树中的每个节点都可以用链表中的一个链节点来存储,每个链节点就包含了若干个指针。但是,这种传统的链式存储结构只能表现出二叉树中节点之间的父子关系,而且不能利用空余的指针来直接得到某个节点的在特定的遍历顺序(先序,中序,后序)中的直接前驱和直接后继。通过分析传统的二叉树链式存储结构表示的二叉树中,存在大量的空闲指针。若能利用这些空指针域来存放指向该节点的直接前驱或是直接后继的指针,则可以进行某些更方便的运算。这些被重新利用起来的空指针就被称为线索,加上了这些线索的二叉树就是线索二叉树。

对二叉树以某种遍历顺序进行扫描并为每个节点添加线索的过程称为二叉树的线索化,进行线索化的目的是为了加快查找二叉树中某节点的前驱和后继的速度。那么在有N个节点的二叉树中需要利用N+1个空指针添加线索。这是因为在N个节点的二叉树中,每个节点有2个指针,所以一共有2N个指针,除了根节点以外每一个节点都有一个指针从它的父节点指向它,所以一共使用了N-1个指针。所以剩下2N-(N-1)个空指针。

相关

  • 鸡皮疙瘩鸡皮疙瘩(粤语地区简称“起鸡皮”)是人类在感到寒冷或恐惧等其他刺激下,其皮肤上出现的类似于鸡皮的小疙瘩,这种现象是立毛肌的收缩活动引起的。当立毛肌收缩,皮肤表面的体毛便会
  • 美国能源部美国能源部(英语:United States Department of Energy),是美国联邦政府负责能源政策制定,能源行业管理,能源相关技术研发、武器研制等职责的行政部门。美国能源部设美国能源部部长
  • 水墨画水墨画,是中国绘画的代表,也就是狭义的“国画”,并传到东亚其他地区。基本的水墨画仅用水与黑墨,只有黑与白之分,后来发展出有其他彩色的水墨画与花鸟画,后者有时也称为彩墨画。中
  • 罗马之劫查理五世帝国:罗马之劫发生于1527年5月6日,是神圣罗马皇帝查理五世属下的军队哗变后在教宗国治下的罗马进行的军事行动。该次事件是查理五世(他同时也是西班牙国王,称卡洛斯一
  • 帕萨迪纳市立学院帕萨迪纳市立学院(Pasadena City College,简称PCC)是一所位于美国的社区学院。位于加州洛杉矶东北部的帕萨迪纳。该校创建于1924年,共有学生24,932名。校长为Dr. Paulette J.
  • 不可思议计划不可思议行动(英语:Operation Unthinkable)是有关西方盟国和苏联间冲突的两份计划的代号。两份计划都是1945年由时任英国首相丘吉尔下令制定,并由英国武装力量联合计划参谋部于
  • 信仰卫士信仰卫士(Ansar Dine)是马里的一个伊斯兰教极端组织。2013年被美国定为外国恐怖组织。这个行动将冻结该组织在美国管辖范围下的所有资产,并且禁止美国人和这个组织进行任何交易
  • 1910年美国人口普查1910年美国人口普查(英语:1910 United States Census)是美国历史上第13次全国人口普查,确定了美国的常住人口为91,972,266人,相比1900年美国人口普查,同比增长为21.0%。1910年的人
  • BBC在线BBC在线(BBC Online),旧称BBCi,是英国广播公司(BBC)的网站名称及其提供的服务。BBC在线提供BBC新闻、BBC体育的内容,以及BBC iPlayer点播服务。BBC自1994年就开始网络服务,但在1997
  • 有单位的在数学里,一代数结构是有单位的(unital 或 unitary),当它含有一乘法单位元素,即含有一元素 1,对所有此代数结构内的元素 ,有 1=1= 的性质。上述说法和一代数结构为乘法上的幺半群