线索二叉树

✍ dations ◷ 2025-10-09 19:15:54 #

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

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

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

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

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

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

相关

  • 反刍反刍是指动物将胃内的食物倒流回口腔内再次咀嚼的行为,需要分为多个胃室的胃。在休息时将半消化的食浆重新咀嚼,然后将这样再次磨碎的食物咽下,通过微生物消化其他只有一个胃的
  • 红酒炖牛肉牛腱台湾地区电影 红酒炖牛肉
  • 苔藓虫外肛动物门(Ectoprocta)是动物界的一个门,其下的物种通称苔藓虫(bryozoans)。外肛动物过去常与内肛动物合称为苔藓动物门(学名:Bryozoa),目前所称的苔藓动物已专指外肛动物。目前生存
  • 韩国酒文化参数所指定的目标页面不存在,建议更正成存在页面或直接建立下列一个页面(建立前请先搜寻是否有合适的存在页面可以取代):汤饭馔韩国酒文化泛指韩国的酿酒、饮酒的文化。韩国的酒
  • 艾里斯·玛丽恩·杨艾里斯·玛丽恩·杨(英语:Iris Marion Young)(1949年1月2日 - 2006年8月1日)是一位美国政治理论家和女性主义者,专注于正义的本质和社会差异。她曾担任芝加哥大学政治学教授,并在那
  • 格奥尔格·弗里德里希·威廉·吕姆克格奥尔格·弗里德里希·威廉·吕姆克(德语:Georg Friedrich Wilhelm Rümker;1832年12月31日-1900年3月3日),是一位德国天文学家。格奥尔格出生在汉堡,是卡尔·路德维希·克里斯蒂
  • 王梓材王梓材(1792年-1851年),初名梓,字楚材,后更字梓材,以字行。浙江鄞县(今浙江宁波)人。祖父王锷,父王谟,皆秀才出身。世居鄞西柳庄坊。道光十四年(1834年)优贡,隔年考取八旗教习。道光十八年
  • 地道战 (消歧义)地道战可以指:
  • 2014 S/S -Japan Collection-《2014 S/S -Japan Collection-》是韩国男子组合WINNER首张日语专辑,在2014年9月10日以两个版本:CD盘及CD+DVD盘推出。2014年8月15日,WINNER的官方网站公布了《2014 S/S -Japan
  • 托马斯·霍拉瓦托马斯·霍拉瓦(捷克语:Tomáš Hořava;1988年5月29日-)是一位捷克足球运动员,在场上的位置是中场。他现在效力于捷克足球甲级联赛球队比尔森胜利足球俱乐部。他也是捷克U21国家