线索二叉树

✍ dations ◷ 2025-12-01 06:06:57 #

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

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

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

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

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

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

相关

  • 晒伤晒伤是一种由于过度暴露于紫外线(通常为日光)下导致的射线烧伤。它促进细胞凋亡,引起的症状为皮肤发红、发痛,在少数极端案例中会导致生命危险,而轻度暴露于紫外线下则只会导致晒
  • 鱼油鱼油是自富含脂肪的鱼类体内取出的油脂。鱼油含ω-3脂肪酸(奥米茄3),主要是二十碳五烯酸(EPA)与二十二碳六烯酸(DHA),这些是可降低发炎反应的营养素。鱼类本身并不会制造ω-3脂肪酸,
  • 波特罗德尼·罗伯特·波特(英语:Rodney Robert Porter,1917年10月8日-1985年9月7日),英国生物化学家,出生于兰开夏郡牛顿勒威洛斯(英语:Newton-le-Willows)。由于对抗体化学结构的研究,而于
  • 恐龙的体型恐龙的体型将目前已知的不同恐龙生物群中,最大、最重与最小的成员列表出来。备注:这个列表并不包含未公布的化石。恐龙的体重估计值比身长估计值变化范围更大,因为使用已灭绝动
  • 科普科学普及,简称科普,又称大众科学、流行科学(英语:popular science)或者普及科学,是指利用各种传媒以浅显的方式向普通大众普及科学技术知识,倡导科学方法、传播科学思想、弘扬科学
  • 马来马来(马来语:Melayu;英语:Malay)可以指:
  • 拜拉希尔拜拉希尔(英语:Byera Hill),是加勒比海岛国圣文森特和格林纳丁斯圣文森特岛东海岸夏洛特区的一座城镇。位于乔治敦的南部,靠近通往首都金斯敦的公路。
  • 加莱国家公园坐标:36°49′N 8°25′E / 36.817°N 8.417°E / 36.817; 8.417加莱国家公园(阿拉伯语:الحظيرة الوطنية للقالة‎),是阿尔及利亚的国家公园,位于该国东北部,
  • 快手 (软件)快手(中国版)或Kwai(国际版)是中国北京快手科技有限公司开发的短视频手机应用,其前身为2011年面世的一款制作、分享GIF图片的应用“GIF快手”,该应用于2012年转型为短视频社区,并于
  • 中国科学院空天信息创新研究院中国科学院空天信息创新研究院(英文:Aerospace Information Research Institute, Chinese Academy of Sciences,简称“中科院空天院”,AIR)是中国科学院下属的空天信息科学研究机