C语言给出一个按照“扩展遍历序列”的扩展先序遍历序列字符串,'#' 代表空的子节点,大写字母代表节点内容。请通过这个字符串建立二叉树,并使用栈实现非递归的中序遍历该二叉树
时间: 2023-06-07 07:11:47 浏览: 159
二叉树的几种操作,包括递归先序建立二叉树、先序遍历、中序遍历、后序遍历、非递归的各种遍历
5星 · 资源好评率100%
扩展遍历序列'是一种将一棵二叉树按照某种约定的顺序遍历的方法,其中扩展先序遍历序列是指先遍历根节点,然后依次遍历其左子树和右子树。例如,对于以下二叉树:
```
A
/ \
B C
/ \ \
D E F
```
其扩展先序遍历序列为:A B D E C F
如果在扩展先序遍历序列中加入一个特殊符号"/",表示遇到空节点,则序列可以表示为:A/B/D//E//B//C//F//
需要注意的是,"/"只能出现在节点的左子树或右子树为空的情况下,遇到非空节点时"/"不参与遍历。通过给定一个扩展先序遍历序列,可以还原出唯一的一棵二叉树。
阅读全文