#include <iostream> #include <stack> #include <queue> using namespace std; class Treenode{ public: char data; Treenode * lchild; Treenode * rchild; }; typedef struct Treenode* Bitree; Treenode* CreatBitree_by_pre_and_in(char *pre,char *in,int n){ Treenode *T; char *p; int k; if(n<=0) return NULL; T=new Treenode; T->data=*pre; for(p=in;p<in+n;p++){ if(*p==*pre) break; } k=p-in; T->lchild=CreatBitree_by_pre_and_in(pre+1,in,k); T->rchild=CreatBitree_by_pre_and_in(pre+1+k,p+1,n-k-1); return T; } void PrintBitree(Treenode *T){ if(T!=NULL){ cout<<T->data; if(T->lchild!=NULL||T->rchild!=NULL){ cout<<'('; PrintBitree(T->lchild); cout<<','; if(T->rchild!=NULL){
根据先序和中序序列建立二叉树
最新推荐文章于 2022-12-19 13:59:12 发布
这篇博客介绍如何根据先序和中序遍历结果来构造二叉树。通过C++代码实现了一个函数`CreatBitree_by_pre_and_in`,该函数接收两个字符数组(分别代表先序和中序遍历结果)和节点数量,返回构建出的二叉树根节点。同时,还提供了一个`PrintBitree`函数用于打印二叉树结构。在`main`函数中,展示了利用给定序列构建并打印二叉树的过程。
摘要由CSDN通过智能技术生成