线索二叉树

✍ dations ◷ 2025-12-03 02:55:54 #

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

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

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

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

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

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

相关

  • 山药薯蓣(学名:Dioscorea polystachya;chinese yam;cinnamon-vine)又称为“蒣”,是薯蓣科薯蓣属的一种植物。 薯蓣的块茎称为山药,冬季采挖。原产地位于中国豫西北的焦作地区附近,古称怀
  • 滑囊炎黏液囊炎(Bursitis),或称滑液囊炎、滑囊炎,是黏液囊的炎症。人体有超过150个黏液囊,常位于肌肉、肌腱、骨骼之间。黏液囊炎典型的症状是红、肿、压痛,常见原因为外伤、过度使用、
  • 训练训练不类似练习。两者有分别。训练就是有别人(教练)的参考或教导;但练习可以独自或与同伴一起进行。训练也有很多不同的种类,例如是运动类的训练,就有游泳的训练、跑步的训练、足
  • 红猩猩猩猩属(学名:Pongo),也叫人猿、红猩猩、红毛猩猩,灵长目人科的一属,与猴子最大不同的地方就是没有尾巴,能用手或脚拿东西。马来语和印尼语叫做Orang utan,意思 “森林中的人”。与人
  • 参孙与大利拉《参孙和大利拉》改编自《圣经·旧约·士师记》第十三章至第十六章中有关希伯莱英雄参孙的故事,是一部由法国作曲家圣桑创作的大型歌剧,于1877年在德国首次公演。这部歌剧是圣
  • 万华坐标:25°01′55″N 121°29′58″E / 25.0319327°N 121.4993322°E / 25.0319327; 121.4993322万华区,是一个位于台湾台北市西南侧的行政区划。设立于1990年,由原龙山区、双
  • 中臣镰足藤原镰足(614年-669年),曾名中臣镰足,字仲郎,古代日本中央的豪族,藤原氏的祖先。本为中臣御食子之子,初称中臣镰子,曾任神袛伯,后退宫,与轻皇子、中大兄皇子等人筹划大化改新。后推翻苏
  • 叫化鸡叫化鸡,也称“叫化子鸡”、“黄泥煨鸡”、“乞儿鸡”、“富贵鸡”等,是苏菜的一道名菜,流行于江苏、浙江。与周代八珍中炮豚、炮牂料理方式相同,应是广域性的料理方式。相传明末
  • 瑞莉·霍尔瑞莉·霍尔(英语:Jerry Hall,1956年7月2日-)是一位美国超级名模和女演员,出生于德克萨斯州。瑞莉曾与滚石乐队的米克·贾格尔相爱尽管她当时布莱恩·费瑞有婚约在身,她还跟米克育有
  • i-Cityi-City是马来西亚雪兰莪州八打灵县莎亚南第七区的一个科技中心。由Jon A. Jerde设计,i-City被设计为一个完全集成的智慧城市,包括企业,休闲和住宅区,如100万平方英尺的区域购物