线索二叉树

✍ dations ◷ 2024-12-23 14:20:15 #

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

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

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

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

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

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

相关

  • 失控减压失控减压(Uncontrolled decompression),简称失压,是指在密闭系统(例如飞机客舱)中气压无预期的降低,并且通常是因为人为错误、金属疲劳、工程缺陷或是撞击,导致压力容器泄压至比其周
  • 铜绿假单胞菌绿脓杆菌,又称铜绿假单胞菌(学名:Pseudomonas aeruginosa),是一种革兰氏阴性菌、好氧、呈长棒形的细菌,只有单向的运动性。它是一种机会性感染细菌,且对植物亦是机会性感染的。与其
  • 刺猬刺猬信号通路(英语:Hedgehog signaling pathway)是重要的信号传导通路。刺猬信号通路是动物发育的关键调控之一,在所有的两侧对称动物中都有表达。刺猬信号通路得名于在其多肽配
  • 特伦特河畔斯托克特伦特河畔斯托克(英语:Stoke-on-Trent),又称特伦特河畔斯托克、特伦特河畔斯托克(Stoke),英国英格兰西米德兰兹区域的二级行政区(区级),拥有城市、单一管理区、自治市镇地位,有239,700
  • 张楚汉张楚汉(1933年10月11日-),中国水利水电工程专家。生于广东梅州梅县区。1957年毕业于清华大学水利工程系,1965年研究生毕业。清华大学水利水电工程系教授。2001年当选为中国科学院
  • 下埃及上下埃及乃埃及在前王朝时期,以孟斐斯为界,位处尼罗河上下游的两个各自独立政权。上游南方地区为上埃及(Upper Egypt),下游北方地区为下埃及(Lower Egypt)。埃及的统一及由之而来的
  • 做功功(英语:work),也叫机械功,是物理学中表示力对位移的累积的物理量,指从一种物理系统到另一种物理系统的能量转变,尤其是指通过使物体朝向力的方向移动的力的作用下能量的转移。与机
  • InvestopediaInvestopedia是美国一家网站,总部设在纽约市,该网站专注于投资、金融教育以及各种金融产品的评论。Investopedia由Cory Wagner和Cory Janssen于1999年在加拿大阿尔伯塔省埃德
  • 第2次近卫内阁第2次近卫内阁(日语:第2次近衞內閣/だい2じ このえ ないかく  */?),是日本日本贵族院议员、火曜会、大政翼赞会总裁近卫文麿就任第38任内阁总理大臣(首相)后,自1940年7月22日至194
  • 史坦·林根史坦·林根(Stein Ringen)(1945年7月5日-)是一名挪威社会学家、政治学家,目前担任牛津大学社会政策与干预系教授。他先后从奥斯陆大学取得政治学硕士和博士学位。