线索二叉树

✍ dations ◷ 2025-11-22 15:21:07 #

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

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

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

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

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

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

相关

  • 外阴炎外阴炎是指外阴皮肤、黏膜炎症性病变,由病原体或刺激性物质刺激引起。表现为瘙痒、疼痛、烧灼感,活动、性交、大小便时感觉不适。外阴炎包括有非特异行外阴炎、前庭大腺炎、前
  • 盲鳗见内文盲鳗亚纲(学名:Myxini)是一类海洋脊椎动物,在食物链上属于食腐动物。过去是无颌总纲之下的一目,现在则是无颌总纲下的圆口纲下的一亚纲。盲鳗广泛分布于全球三大洋的温带、
  • 突尼斯法属突尼斯保护国(法语:Protectorat français de Tunisie,阿拉伯语:الحماية الفرنسية في تونس‎)即法属突尼斯,是原法国在北非的一个保护国。突尼斯原为奥
  • 一级行政区德国行政区(德语:Regierungsbezirk)是德国行政区划中的1.5级行政区,位于联邦州之下,县和无属县城市之上。人口和面积相当于中华人民共和国的地级,也相当于清代的府。注意并不是所
  • 宽永宽永是日本的年号之一,指的是元和之后、正保之前,由1624年到1645年的这段期间。这个时代的天皇是后水尾天皇、明正天皇、后光明天皇。江户幕府的将军是德川家光。出字中国南宋
  • 南北货南北货,涉及柴、米、油、盐、酱、醋、茶等料理所需,或称“南北杂货”、“杂货”,偶兼售五金或日用品。说法不一,是指满清时代的商人,多透过同业公会方式于南、北“郊”等进行买卖
  • Windows 9xWindows 9x是以Windows 95内核作为蓝本的微软操作系统的通称。这包括了Windows 95、Windows 98的所有版本,以及2000年发布的Windows Me。Windows 9x所使用的内部发行版本号为
  • 倒卵叶山龙眼倒卵叶山龙眼(学名:),又称莲花池山龙眼,为山龙眼科山龙眼属下的一个种。 维基物种中有关倒卵叶山龙眼的数据
  • 凯蒂-克雷特·马兰凯蒂-克雷特·马兰(爱沙尼亚语:Kati-Kreet Marran,1998年7月13日-),爱沙尼亚女子羽毛球运动员。2014年5月,凯蒂-克雷特·马兰出战里加羽毛球国际赛,与萨利-利斯·蒂萨卢合作夺得女子
  • 刘景寅刘景寅(1466年-1517年),字生之,四川叙州府南溪县人。明朝官员。弘治六年(1493年)癸丑科第二甲第二十六名进士出身。授户部主事。升任户部员外郎。当时刘瑾专政,欲拉拢刘景寅,刘景寅坚