#include<iostream> using namespace std; typedef struct BiTreeNode{ char data; BiTreeNode *lChild; BiTreeNode *rChild; }BiTreeNode; //递归建立二叉树 void InitialBiTree(BiTreeNode *&node) { char data; cout<<"请输入数据,输入#结束"<<endl; cin>>data; if(data!='#') { node=(BiTreeNode*)malloc(sizeof(BiTreeNode)); if(node==NULL)return; node->data=data; InitialBiTree(node->lChild); InitialBiTree(node->rChild); } else { node=NULL; } } //先序遍历 void TransFirstBiTree(BiTreeNode *&root)//注意使用*&root,^-^搞得有点郁闷反正就是这样root才可以保住 { if(root==NULL)return; else { cout<<root->data<<" "; TransFirstBiTree(root->lChild); TransFirstBiTree(root->rChild); } } //后序遍历 void TransLastBiTree(BiTreeNode *&root) { if(root==NULL)return; else { TransLastBiTree(root->lChild); TransLastBiTree(root->rChild); cout<<root->data<<" "; } } //中序遍历 void TransMiddleBiTree(BiTreeNode *&root) { if(root==NULL)return; else { TransMiddleBiTree(root->lChild); cout<<root->data<<" "; TransMiddleBiTree(root->rChild); } } int main() { BiTreeNode *root=NULL; InitialBiTree(root); cout<<"先序遍历\n"; TransFirstBiTree(root); cout<<"\n"; cout<<"中序遍历\n"; TransMiddleBiTree(root); cout<<"\n"; cout<<"后序遍历\n"; TransLastBiTree(root); cout<<"\n"; return 0; }
二叉树的递归初始化,以及先序,中序,后序遍历
最新推荐文章于 2019-05-25 21:11:01 发布