线索二叉树

✍ dations ◷ 2024-09-20 06:03:26 #

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

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

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

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

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

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

相关

  • 减轻体重体重下降(Weight loss)在医学、健康或是体适能领域中,是指人体体重的下降,可能是因为体液的减少、体脂肪或脂肪组织的减少,也有可能是净体重(lean mass,无脂肪体重,是指骨骼矿物质、
  • 联邦规则汇编联邦规则汇编(英语:Code of Federal Regulations,缩写:CFR)是由美国联邦政府执行部门的联邦公报发布的一般性和永久法律法规的汇编,通过不同的主题把联邦规则分为50个主题。联邦规
  • 邦巴利区邦巴利区(英文:Bombali District)是塞拉利昂14区之一,首府马卡尼 (英文:Makeni).
  • 八公犬忠犬八公(日语:忠犬ハチ公,1923年11月10日-1935年3月8日),为日本历史上一条具有传奇色彩的忠犬。其品种为秋田县大馆市的秋田犬。1924年,东京帝国大学(现东京大学)农学部教授上野英三
  • 旧世界猴猴科(学名:Cercopithecidae),即旧世界猴,灵长目的一科,是与猿类最接近的猴,也是我们最为熟悉的一类灵长目动物。今天主要分布在非洲和亚洲的广大地区,也分布于欧洲极少部分地区。猴
  • 树林后村圳改修碑及水汴头坐标:24°58′49″N 121°25′33″E / 24.980201°N 121.425742°E / 24.980201; 121.425742树林后村圳改修碑及水汴头,位于新北市树林区水源街32巷,为(1917年)记载后村圳的沿革,
  • 竹市雅俊竹市雅俊(日语:竹市 雅俊/たけいち まさとし Takeichi Masatoshi ?,1943年11月27日-),日本细胞生物学者、胚胎学者,美国国家科学院外籍院士,日本学士院会员。现任理化学研究所多细
  • 海军陆战队一号海军陆战队一号(英语:Marine 1)是美国总统所搭乘的美国海军陆战队专机的无线电台呼号。不同于空军一号,海军陆战队一号是直升机,用于国内短途旅行。一般来说,美国总统从白宫出行时
  • 阿尔弗雷德·卡斯特勒阿尔弗雷德·卡斯特勒(法语:Alfred Kastler,1902年5月3日法国盖布维莱尔 - 1984年1月7日),法国物理学家,1966年获诺贝尔物理学奖。1901年:伦琴 / 1902年:洛伦兹、塞曼 / 1903年:贝克
  • 伊东一刀斋伊东一刀斋,生卒年不详,是日本战国时代至江户时代初期的剑客。本姓伊藤,故又称伊藤一刀斋。江户时代时盛极一时一刀流剑术的开山始祖、但他本人从未自称过“一刀流”。一刀斋以