10.25学习总结
(1)今日安排
二叉树遍历应用
题目要求:读入用户输入的一串字符串,将字符串按照先序遍历建立一个二叉树。 其中“#”表示的是空格,代表空树。再对建立好的二叉树进行中序遍历,输出遍历结果。
(2)源代码
#include<iostream> #include<cstdio> using namespace std; typedef struct node{ char ch; node* lc,*rc; }node,*Node; string s; Node build(Node p,int& k){ if(s[k]=='#'){ k++; return NULL; } p=new node(); p->ch=s[k++]; p->lc=build(p->lc,k); p->rc=build(p->rc,k); return p; } void show(Node p){ if(p==NULL) return; show(p->lc); cout<<p->ch<<' '; show(p->rc); } int main(){ cin>>s; Node p=NULL; int k=0; p=build(p,k); show(p); return 0; }