线索二叉树

✍ dations ◷ 2025-02-23 16:58:33 #

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

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

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

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

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

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

相关

  • 青霉素V青霉素V钾,英文名Phenoxymethylpenicillin Potassium(INN), 又名苯氧甲基青霉素。是于1947年研制而成的天然青霉素。
  • Br溴(原子量:79.904(1))共有45个同位素,其中有2个同位素是稳定的。备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 布鲁克海文市布鲁克海文(英语:Brookhaven)是一个位于美国佐治亚州迪卡尔布县的城市。布鲁克海文的座标为33°51′33″N 84°20′20″W / 33.85917°N 84.33889°W / 33.85917; -84.33889,而
  • 约翰·梅杰约翰·梅杰爵士,KG,CH (英语:Sir John Major,1943年3月29日-)是一名英国政治家,于1990年至1997年出任英国首相和英国保守党党魁。他曾于1987年至1990年间在玛格利特·撒切尔内阁相继
  • 新柏拉图主义新柏拉图主义(Neo-Platonism),是公元3世纪由亚历山大城的普罗提诺发展出的哲学派别,是古希腊文化末期最重要的哲学流派,对基督教神学产生了重大影响。该流派主要基于柏拉图的学说
  • 食物与燃料之争食物与燃料之争(Food vs. fuel)是指占用耕地或者挪用粮食作物用以生产生物燃料,可能会导致粮食安全受到损害的全球规模的困境。整个国际范围内都存在"食物还是燃料"的争论,并
  • 乌山头水库乌山头水库,旧称乌山头贮水池,是一座位于台湾台南市六甲区官田区的水库,具有水力发电功能,与乌山头水力发电厂和乌山头风景区相并在一起。地理位置在海拔468米的乌山岭。由于水
  • 勇敢梦《勇敢梦》(Dreaming Out Loud),是美国摇滚乐队一体共和的首张录音室专辑。制作人为格雷格·韦尔斯(英语:Greg Wells),其中两首歌由瑞安·特德 制作,混音工程师为乔·祖克。专辑发
  • 陈叔刚陈叔刚(1394年-1440年),名枨,字叔刚,号纲斋,以字行,福建闽县大义村人。明朝政治人物。永乐十九年(1421年)辛丑科进士。宣德元年,任御史,参与修《明太宗实录》、《仁宗实录》、《宣宗实录
  • 劳尔·伊巴涅斯劳尔·哈维尔·伊巴涅斯(Raúl Javier Ibáñez,1972年6月2日-)是美国职棒大联盟的美籍古巴裔外野手,现已退休。在他19年的棒球生涯中,有11年待在水手队,另外还待过皇家、费城人、