首页 > 编程知识 正文

后序和中序确定二叉树,二叉树的先序遍历和中序遍历如下

时间:2023-05-03 18:07:29 阅读:30038 作者:855

给出树的后序和中序遍历,求出前序遍历

假设有这样一棵树

写他的后序很简单,遍历数据库

他也可以很容易地按顺序遍历数据库格夫

1 .之后的遍历是前后根,根节点总是最后的,因此可以找到根节点c

2 .希望在输出前遍历。 根节点总是在前面,所以每次找到时输出就可以了

3 .然后使用find函数找到根节点c在中序遍历中的位置,分为两级DAB GEF,然后分为中序遍历两级。 请注意,必须首先递归DAB,然后递归GEF,才能在根之后而不是根前后

4 .后续遍历也分为2个DAB GFE,通过后续遍历递归

是的,直接坐代码

# include iostream # include algorithm # includecstringusingnamespacestd; voidDG(stringa,string b ) if (a.size ) )0) { char c=b [ b.size ] (-1 ]; cout c; intk=a.find(c; DG(a.substr(0,k )、b.substr(0)、k ); DG(a.substr(k1 )、b.substr(k ) k,b.size )-k-1 ); }}int main () IOs:3360sync_with_stdio ) false ); 字符串in,aft; cin in aft; DG(in,aft ); }给出前相遍历和中相遍历,求出后相遍历

# includeiostreamusingnamespacestd; voidDFS(stringa,string b ) if (a.size )=0) return; char c=b[0]; intx=a.find(c; DFS(a.substr(0,x )、b.substr(1)、x ); DFS(a.substr(x1 )、b.substr (b.size )-x ); cout c; (}int main ) ) {string a,b; cin a b; DFS(a,b ); }

给出前相横移和后相横移求解中相横移

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。