线索二叉树

✍ dations ◷ 2025-12-04 22:39:44 #

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

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

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

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

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

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

相关

  • 保泰松保泰松是一种作用于中枢神经系统的药物,属吡唑酮类衍生物,解热镇痛作用较弱而抗炎作用较强,对炎性疼痛效果好,并能促进尿酸的排泄。保泰松的解热镇痛作用不及乙酰水杨酸,且毒性较
  • 金属离子金属离子是一类由金属元素(铵根离子除外)失去电子而形成的阳离子,通常由可溶性盐溶于水解离或金属单质、高价金属离子发生氧化还原反应而来,亦有极少数金属离子是阴离子。正价金
  • 唐南珊唐南珊(英语:Nancy T. Chang,1949年-),生于台湾,著名生物化学家与企业家,在休士顿创办了Tanox公司。唐南珊家中手足六人,她排行老大,父亲专业工程师,母亲学中医,但忙于照顾子女,一生从未
  • 格雷斯港格雷斯港县(英语:Grays Harbor County)是美国华盛顿州西部的一个县,西临太平洋。根据美国2010年人口普查,共有人口72,797人。县治蒙特萨诺,最大城市阿伯丁。于1854年4月14日从瑟斯
  • 李全李全(?-1231年),潍州北海人,金朝红袄军首领。生于农家,早年在河边洗刷牛马,“身长八尺,手执铁枪。”,能运使铁枪,时号“李铁枪”。在山东一带横行,后加入红袄军。夫人杨妙真,是红袄军首领
  • 旧五代史《旧五代史》,北宋薛居正等撰。原名《梁唐晋汉周书》,概称《五代史》。原本已佚,今本乃邵晋涵等四库馆臣自《永乐大典》等文献中辑出,是二十四史中唯一辑本。宋太祖开宝六年(973
  • 白犀白犀(学名:),又名白犀牛、方吻犀,是现存体型最大的犀牛之一。有 北白犀 和 南白犀 两个亚种,分别栖息于非洲中部和南部的草原。2018年3月19日,最后一头雄性北白犀“苏丹(英语:Sudan (
  • 爱媛县第2区爱媛县第2区是日本众议院的选区,始于1994年。北海道 13 | 山形县 4 | 静冈县 9 | 岛根县 3 | 大分县 4福井县 3 | 山梨县 3 | 德岛县 3 | 高知县 3 | 佐贺县 3青森县 4 | 岩
  • 苹果菜单苹果菜单(Apple menu)是一个在Classic Mac OS、MacOS和A/UX 操作系统之中位于菜单栏左侧的一个下拉式菜单。苹果菜单的功用在苹果公司操作系统的发展历史中发生过变化,但是菜单
  • 中华苏维埃中央博巴自治政府中华苏维埃中央博巴自治政府,亦称博巴依得瓦(藏语:.mw-parser-output .uchen{font-family:"Qomolangma-Dunhuang","Qomolangma-Uchen Sarchen","Qomolangma-Uchen Sarchung","Q