线索二叉树

✍ dations ◷ 2025-11-26 16:20:36 #

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

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

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

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

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

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

相关

  • 胡椒黑胡椒(学名:Piper nigrum),又名黑川,是胡椒属的开花藤本植物,果实在晒干后通常可作为香料和调味料使用。同样的果实还是白胡椒、红胡椒与绿胡椒的制作原料。黑胡椒原产于南印度,在
  • 苋菜苋属(学名:Amaranthus)植物是一类分布广泛的草本植物,包含了大约70个种,常统称为野苋菜。其普遍特征是花序和叶子会呈现出不同程度的紫红色到金色。该属有一些种被认为是有危害
  • 吴妍华吴妍华(1948年2月11日-),台湾女性分子生物学家,嘉义人,中央研究院院士,曾任国立阳明大学、国立交通大学校长、代理校长,任期至2015年7月31日止。吴妍华于1948年生于台南县嘉义地区,是
  • 流求国流求国或称琉求,是唐朝史家魏徵和令狐德棻等在《隋书·流求国》和《隋书·陈棱传》中所提到的一个在东方海上的岛国。根据该史料的记载,在公元7世纪初(大业年间),隋炀帝派遣两名
  • 柬埔寨人口柬埔寨人口是东南亚国家柬埔寨的人口数据纪录。在1950年由370多万增加至407万,在1962年时达到了570万。从60年代至70年中期,柬埔寨人口每年约增加2.2%。1975年赤柬上台时,全国
  • 比尔·帕克斯顿威廉·“比尔”·帕克斯顿(英语:William "Bill" Paxton),1955年5月17日-2017年2月25日)是美国演员和电影导演。他主演《阿波罗13》,《真实的谎言》和《泰坦尼克号》。帕克斯顿主演H
  • 米哈伊尔·科格尔尼恰努米哈伊尔·科格尔尼恰努(罗马尼亚语:Mihail Kogălniceanu,1817年9月6日-1891年7月1日)是罗马尼亚政治家、律师、历史学家和公关人员(英语:Publicist)。
  • 辉腾锡勒草原辉腾锡勒草原位于中国内蒙古自治区乌兰察布市察哈尔右翼中旗的中南部。辉腾锡勒(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Men
  • 广东揭阳杀人卖尸案广东揭阳杀人卖尸案有两起,一起破获于2004年,另一起破获于2008年。2004年广东揭阳市破获一起的恶性杀人倒卖尸体案件。被害人多为智障者、精神病患者及年老体弱者。罪犯将被害
  • 安硕MSCI凯特400社会指数基金安硕MSCI凯特400社会指数基金(英语:MSCI KLD 400 Social Index Fund,NYSE:DSI)是于纽约证券交易所上市的交易所交易基金,这个是在投资上市的美国MSCI凯特400社会成份股最有价值基