如何进行THREADED二叉搜索树的预订和后序遍历?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何进行THREADED二叉搜索树的预订和后序遍历?相关的知识,希望对你有一定的参考价值。
好的,所以通过使用线程遍历线程二叉树就像这样。从最左边的节点开始打印它跟随线程向右打印它跟随链接向右转到最左边的节点并打印它跟随线程向右打印它...........(重复)
但是如何使用线程进行前后遍历呢?
答案
线程树节点通常有一个标志,告诉您节点中的right
和left
指针是对子节点的引用,还是对inorder / preorder后继节点的线程。这是您可以判断节点是否为叶子的唯一方法。
关于线程树的优点是顺序或反向顺序遍历可以快速完成而不需要递归。但是线程树不能帮助您进行后序或前序遍历。如果你想做其中一个,你必须使用递归算法,考虑线程。例如:
preorder(node)
print node
if (node.left is not a thread link)
preorder(node.left)
if (node.right is not a thread link)
preorder(node.right)
postorder(node)
if (node.left is not a thread link)
preorder(node.left)
if (node.right is not a thread link)
preorder(node.right)
print node
以上是关于如何进行THREADED二叉搜索树的预订和后序遍历?的主要内容,如果未能解决你的问题,请参考以下文章