试验三实验题目:在采用链式存储结构存储的二叉树上,以root指向根接点,p指向任一给定的接点,编程实现求出从根接点到给定接点之间的路径试验要求:
采用二叉链表作存储结构。
创建二叉树,并实例化有若干结点的二叉树。
实现二叉树非递归后序遍历算法,并输出所需路径,算法要有较好的性能。
设计驱动程序、测试用例,并得出正确结果。
试验目的:
掌握二叉树的存储结构及其基本操作,学会定义二叉树的链式存储结构,在实际问题中灵活运用。
掌握二叉树的基本运算,如插入结点、输出结点、遍历算法等,熟悉操作的实现方法。
通过本试验的具体应用实例,进一步熟悉和掌握二叉树的操作。
提示:
在二叉树上无论采用哪种遍历方法,都能够访问遍树中的所有结点。由于访问结点的顺序不同,前序遍历和中序遍历都很难达到设计的要求;但采用后序遍历二叉树是可行的,因为后序遍历是最后访问根结点,按这个顺序将访问过的结点存储到一个顺序栈中,然后 再输出即可。因此可以非递归地后序遍历二叉树root,当后序遍历访问到结点*p时,此时栈stack中存放的所有结点均为给定结点*p的祖先,而由这些祖先便构成了一条从根结点到结点*p之间的路径。