线索二叉树

✍ dations ◷ 2025-12-02 07:59:27 #

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

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

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

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

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

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

相关

  • 一氯化碘一氯化碘(分子式:ICl)是一种互卤化物,为一种红棕色的化合物,其熔点接近室温。因为碘与氯电负度的差异,一氯化碘的极性很高,可当作是I+的来源。制备一氯化碘的方式,是直接将两种卤素
  • 金鱼金鱼(学名:Carassius auratus auratus)是一种原产于中国的观赏鱼类,是野生鲫鱼演化而来的彩色变种。野生鱼类中自然有些色彩鲜艳的鱼,不仅是鲫鱼还有红鲤鱼等。彩色鲫鱼遗传性状
  • 小行星3001小行星3001(3001 Michelangelo,3001 米开朗基罗)是位于小行星带的小行星,由爱德华·鲍威尔在1982年发现。以文艺复兴三杰中的米开朗基罗命名。小行星3001最靠近火星的距离只有 0
  • 美国行政管理和预算局美国行政管理和预算局(Office of Management and Budget, OMB),美国总统办事机构之一,是美国总统维持对政府财政计划控制的机关。 1921年,《美国预算和会计法》规定美国总统应
  • 皇帝会战 法国 英国 美国 1915年1916年1917年1918年皇帝会战(德语:Kaiserschlacht),又称作鲁登道夫攻势(英语:Ludendorff Offensive)或春季攻势(德语:Frühjahrsoffensive),是第一次世界大战由
  • 空 (大黑摩季单曲)《空》(平假名:そら)是日本女性创作歌手大黑摩季的第17张单曲。1997年5月28日由B-Gram RECORDS(现已并入Being)发行。《空》是创作歌手大黑摩季在Being所属期间发行的单曲,同名表
  • 吉姆·帕蒂森詹姆斯·艾伦“吉姆”帕蒂森(1928年10月1日-)是加拿大商业大亨,投资者和慈善家。他是温哥华吉姆·帕蒂森集团的举行首席执行官、主席和唯一所有者。他被认为是加拿大第四富有的
  • 乌尔扎巴巴乌尔扎巴巴(约公元前2340年前后在位)(英语:Ur-Zababa)基什第四王朝末代国王。他被萨尔贡废黜,后者建立阿卡德帝国。
  • 江苏凤凰文艺出版社江苏凤凰文艺出版社有限公司是中华人民共和国江苏省的一家文艺出版社,原名江苏文艺出版社(Jiangsu Literature and Art Publishing House),成立于1958年,后曾一度并入江苏人民出
  • 沈炳垣 (海盐县)沈炳垣(1819年-1857年),字紫卿,浙江海盐县人。官至广西学政,咸丰七年(1857年)死于天地会反清起事。沈炳垣为道光二十五年(1845年)乙巳恩科二甲进士,选庶吉士,散馆授翰林院编修。迁中允。