#include<iostream> #include<stack> #define TElemType char using namespace std; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //先序遍历的顺序建立二叉链表 void xCreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=NULL; else { T=new BiTNode; T->data=ch; xCreateBiTree(T->lchild); xCreateBiTree(T->rchild); } } //先序遍历输出 void xPrintTree(BiTree T) { if(T) { cout<<T->data; xPrintTree(T->lchild); xPrintTree(T->rchild); } else { return; } } //中序遍历的顺序建立二叉链表 void zCreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=NULL; else { T=new BiTNode; zCreateBiTree(T->lchild); T->data=ch; zCreateBiTree(T->rchild); } } //中序遍历输出 void zPrintTree(BiTree T) { if(T) { zPrintTree(T->lchild); cout<<T->data; zPrintTree(T->rchild); } else { return; } } //后序遍历的顺序建立二叉链表 void hCreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=NULL; else { T=new BiTNode; hCreateBiTree(T->lchild); hCreateBiTree(T->rchild); T->data=ch; } } //后序遍历输出 void hPrintTree(BiTree T) { if(T) { hPrintTree(T->lchild); hPrintTree(T->rchild); cout<<T->data; } else { return; } } int main() { BiTree root; // xCreateBiTree(root); // xPrintTree(root); /* 输入:ABC##DE#G##F### 输出:ABCDEGF */ // zCreateBiTree(root); // zPrintTree(root); /* 输入:ABC##DE#G##F### 输出:CBEGDFA */ hCreateBiTree(root); hPrintTree(root); /* 输入:ABC##DE#G##F### 输出:CGEFDBA */ return 0; }
来源:博客园
作者:一朵菊花脸上遮
链接:https://www.cnblogs.com/chrysanthemum/p/11762574.html