线索二叉树

✍ dations ◷ 2025-11-27 06:02:09 #

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

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

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

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

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

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

相关

  • 乍得人猿乍得沙赫人(Sahelanthropus tchadensis),又名乍得人猿,是一种只有化石的猿,相信是生存于700万年前(7Ma)。它被称为最古老的人属祖先,是人类及黑猩猩的最近共同祖先。它是属于中新
  • 自杀式袭击自杀攻击或称自杀式袭击、人肉炸弹,是一种将自杀扩大为伤害自己及目标者的行为,现代的自杀式攻击通常是由自杀者在身上绑好炸弹,走到目标地,或是以装满炸弹的车冲撞特定目标然后
  • 武藤嘉文武藤嘉文(日语:むとう かぶん,1926年11月18日-2009年11月4日),日本政治家,自由民主党众议员。岐阜县人。父亲为武藤嘉一。岐阜县各务原市出身。高中毕业后入读上海的东亚同文书院大
  • 沃尔夫冈·许塞尔沃尔夫冈·许塞尔(Wolfgang Schüssel,1945年6月7日-)生于维也纳,奥地利人民党政治家。2000年-2007年出任奥地利总理。许塞尔是维也纳大学法律系毕业,博士学位。1995年任奥地利人民
  • 西班牙语正字法 (1741年)西班牙语正字法(1741年版,Orthographía española)于1741年由西班牙皇家学院 (RAE)发布,这是该机构第一次专门发布关于西班牙语的正字法。全书计衬页背面、题词、勘误表及正文
  • 杨子玄杨子玄(西班牙语:Jose Manuel Ovejero Marquez, 1968年5月27日-),旧汉名杨和曦,来自西班牙的武术家。师承伊鲁山度之徒 Felipe Mercado。为在台湾少数经过伊鲁山度系统认可的教练,
  • 中介效应化学中的中介效应,是英国化学家克里斯托夫·英果尔德在1938年最早提出的概念,指的是通过分子共振式定量判断得出的、取代基的一种吸电子/给电子性质。 指具吸电子性的取代基(如
  • 约翰·史密斯 (政治人物)约翰·史密斯(John Smith,1938年9月13日-1994年5月12日)。英国政治家,前工党领袖,于1992年至1994年马卓安执政期间出任工党党魁兼最大反对党领袖。
  • 托马斯·阿恩托马斯·奥古斯丁·阿恩(Thomas Augustine Arne /ɑːrn/;1710年3月12日-1778年3月5日)是一位英格兰作曲家,以创作了《统治吧,不列颠尼亚!》而出名,此外还创作过《天佑吾王》的一个
  • 人工卵子人工卵子(或人造卵子;英语:Artificial egg; 或英语:Artificial ovum),是一种实验中的科技,模拟并制作人类或动物的卵子,配合其他人工生殖技术,如人工子宫及人工精子,可达至完全人工及