线索二叉树

✍ dations ◷ 2025-12-10 13:23:51 #

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

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

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

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

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

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

相关

  • 地球高峰会地球高峰会(英语:Earth Summit),又称联合国环境与发展会议(英语:The United Nations Conference on Environment and Development,简称UNCED)、里约热内卢高峰会,是联合国重要会议之
  • 创造亚当《创造亚当》 是米开朗基罗创作的西斯汀小堂天顶画《创世纪》的一部分,创作于1511至1512年间的文艺复兴全盛期。这幅壁画描绘的是《圣经·创世纪》中上帝创造人类始祖亚当的
  • 伊拉克之子伊拉克战争伊拉克救赎委员会(阿拉伯语:المجلس الوطني لإنقاذ العراق‎ al-Majlis al-Waṭanī li-Inqādh al-ʻIrāq),也称作: 逊尼派救国运动(阿拉伯语
  • 狸藻属狸藻属(学名:Utricularia)是食虫植物中最庞大的一属,由233种植物所组成,除了南极洲,狸藻横越了所有大陆洲,存在于鲜活的水域以及潮湿的泥土。培育狸藻的主要目的是为了观赏它们的花
  • 黑衣人阴谋论黑衣人(英语:Men in black,有时写作MIB),是在美国流传已久的一种都市传说、UFO阴谋论(英语:UFO conspiracy theory),泛指美国某个政府秘密机构中穿着黑色西装的特工,他们经常帮政府掩
  • 磷营养磷是人体必需的矿物质营养素。在所有的微量元素中,由于磷在自然界中分布甚广,因此一般情形很少有缺乏之可能。在世界卫生组织的数据库中,有关于的缺磷的地区方面的报导几乎没有
  • 吉氏皮杜银汉鱼吉氏皮杜银汉鱼为辐鳍鱼纲银汉鱼目皮杜银汉鱼科的其中一种。本鱼分布于马达加斯加的淡水水域。本鱼体长呈纺锤型,略侧扁,吻略成尖突,吻长大于眼径,下腭肥后,背鳍2枚。体绿色,一暗
  • AKMSU卡宾枪AKMSU是AKMS的短枪管卡宾枪型,但由于产量极为稀少,故难以寻找其踪迹,而且还被认为不是苏联制的武器。根据部分消息指,AKMSU为苏联在1977年测试的武器之一,主要是打算供当时的特种
  • 斑鳳蝶 (Linnaeus, 1758)斑鳳蝶(学名:),又名擬斑鳳蝶、大斑鳳蝶、黄边凤蝶、黄缘凤蝶,是斑鳳蝶属下的一种蝴蝶,主要分布于金门、中国南部及南亚地区。本种卵呈球形,橙黄色,表面上涂有一层
  • 哈尔的移动城堡《哈尔的移动城堡》(ハウルの動く城),是在2004年由宫崎骏导演,继动画电影《千与千寻》之后,吉卜力工作室推出的一部动画电影,是带有宫崎骏动漫特色的作品。作品总作画张数达148,78