首页 > 代码库 > 扩展二叉树
扩展二叉树
扩展二叉树
一、心得
二、题目及分析
给定扩展二叉树的先序序列,求二叉树的中序和后序序列
输入
ABD..EF..G..C..
输出
dbfegac
dfgebca
三、代码及结果
1 //扩展二叉树 2 #include <iostream> 3 #include <string> 4 using namespace std; 5 6 string s="ABD..EF..G..C.."; 7 int m=-1; 8 9 typedef struct node{ 10 char data; 11 node *lchild,*rchild; 12 }*tree; 13 14 15 void creatTree(tree &bt){ 16 if(s[++m]!=‘.‘&&m<s.length()){ 17 bt=new node; 18 bt->data=http://www.mamicode.com/s[m]; 19 cout<<bt->data<<" "<<m<<" "; 20 creatTree(bt->lchild); 21 creatTree(bt->rchild); 22 } 23 else bt=NULL; 24 25 } 26 //先序遍历 27 void printxx(tree bt){ 28 if(bt){ 29 cout<<bt->data<<" "; 30 printxx(bt->lchild); 31 printxx(bt->rchild); 32 } 33 } 34 35 //中序遍历 36 void printzx(tree bt){ 37 if(bt){ 38 printzx(bt->lchild); 39 cout<<bt->data<<" "; 40 printzx(bt->rchild); 41 } 42 } 43 44 //后序遍历 45 void printhx(tree bt){ 46 if(bt){ 47 printhx(bt->lchild); 48 printhx(bt->rchild); 49 cout<<bt->data<<" "; 50 } 51 } 52 53 int main(){ 54 tree treeHead; 55 creatTree(treeHead); 56 cout<<endl; 57 printxx(treeHead); 58 cout<<endl; 59 printzx(treeHead); 60 cout<<endl; 61 printhx(treeHead); 62 return 0; 63 }
扩展二叉树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。