线索二叉树

✍ dations ◷ 2025-07-01 06:56:08 #

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

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

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

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

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

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

相关

  • 性交体位行房姿势、性姿势、性体位或性交体位,泛指参与性行为者所采行的姿势。《红楼梦》第23回中贾琏要求王熙凤改变一些新奇的姿势,“只是昨儿晚上,我不过是要改个样儿,你就扭手扭脚的
  • 哌啶哌啶、六氢吡啶是一个杂环化合物,分子式为(CH2)5NH。它是一个仲胺,可看作环己烷一个碳被氮替代后形成的化合物,即氮杂环己烷。室温下为无色发烟液体,有类似氨、胡椒和人类精液的
  • 瞿式耜画像出自1920年上海《常熟瞿氏忠贤遗像》瞿式耜(耜,音sì/ㄙˋ,1590年-1651年1月8日),字起田,又字伯略,号稼轩,明末政治人物、诗人。直隶常熟县(今江苏省常熟市)人。祖父瞿景淳,官至礼部
  • 奥兰多奥兰多(英语:Orlando)是位于美国佛罗里达州中部的一座城市,也是橙县(又译奥兰治县)的县治所在,根据美国人口调查局2006年统计,人口共220,186人。2016年3月都会区已上升至2,387,138人
  • 杨霞杨霞(1977年1月8日-)是中国一位女子举重运动员,出生于湖南省保靖县,土家族。1988年,杨霞入选湘西自治州业余体校女子举重班成为首批队员。1989年11月人选湖南省女子举重队。1997年
  • 斯坦尼斯瓦夫·德拉古恩斯坦尼斯瓦夫·德拉古恩(白俄罗斯语:Станіслаў Эдуардавiч Драгун;1988年6月4日-)是一位白俄罗斯足球运动员。在场上的位置是中场。他现在效力于白俄罗
  • 伯尔尼年轻人体育俱乐部伯尔尼年轻人体育俱乐部(BSC Young Boys)是瑞士的职业足球俱乐部,位于瑞士首都伯尔尼。年轻人体育俱乐部建于1898年3月14日,取名相对照于已经解散的俱乐部巴塞尔老伙计队。俱
  • 提姆·马约特提姆·马约特(Tim Mayotte,1960年8月3日-)是一位美国职业网球运动员。他曾获得1988年夏季奥林匹克运动会网球男子单打项目银牌。他在四大满贯赛单打项目中的最好成绩是四强。
  • 尼古拉·博尔久扎尼古拉·尼古拉耶维奇·博尔久扎(俄语:Николай Николаевич Бордюжа,1949年10月20日-),男,奥廖尔人,俄罗斯政治人物,外交官。前克格勃官员。1972毕业于彼尔姆
  • 桂妮薇尔·考夫曼桂妮薇尔·考夫曼 (英语:Dr Guinevere Alice Mei-Ing Kauffmann, 1968年12月26日-)是一位美国天体物理学家,与丈夫西蒙·怀特同为马克斯·普朗克天体物理研究所所长。1988年拿到