#include <iostream> using namespace std; //创建数结构 typedef struct node { int data; struct node *ltree; struct node *rtree; }*BitTree,bitTree; void creat_tree(BitTree &tree); void pre_travel(BitTree &tree); void mid_travel(BitTree &tree); void post_travel(BitTree &tree); int main() { BitTree tree; cout<<" please input tree data"<<endl; creat_tree(tree);//创建节点 cout<<" 前序 "; pre_travel(tree);//前序遍历节点 cout<<endl; cout<<" 中序"; mid_travel(tree);//中序 cout<<endl; cout<<" 后序 "; post_travel(tree); cout<<endl system="" pause="" return="" 0="" void="" creat_tree="" bittree="" tree="" int="" data="" cin="">>data; //完成退出条件 if (data==0) { tree=NULL; return; } else { tree=new bitTree; //判断节点创建是否成功 if (tree==NULL) { exit(0); } tree->data=data; //创建左子树 creat_tree(tree->ltree); //创建右子树 creat_tree(tree->rtree); } } //前序访问 void pre_travel(BitTree &tree) { if (tree!=NULL) { cout<<tree->data<<" "; //左子树 pre_travel(tree->ltree); //右子树 pre_travel(tree->rtree); } return; } //中序访问 void mid_travel(BitTree &tree) { if (tree!=NULL) { //左子树 mid_travel(tree->ltree); cout<<tree->data<<" "; //右子树 mid_travel(tree->rtree); } return; } //后序 void post_travel(BitTree &tree) { if (tree!=NULL) { //左子树 post_travel(tree->ltree); //右子树 post_travel(tree->rtree); cout<<tree->data<<" "; } } </tree-></tree-></tree-></endl></iostream>