转专业数据结构在学生,老师讲树时的小作业,因为在看帖子得到了很多帮助,所以也顺手发第一篇帖子
/*≈自习数据结构ing,如有问题,欢迎指正~*/ #include <iostream> using namespace std; struct node { node* right;//右孩子节点 char data; node* left;//左孩子节点 }; node* creatBT(node* RT)//先序序列递归构建 { char ch; cin>>ch; if (ch=='#')//#表示空子树 { RT=NULL; } else { RT=new node; RT->data=ch; RT->left=NULL; RT->right=NULL; RT->left=creatBT(RT->left); RT->right=creatBT(RT->right); } return RT;//返回根节点 } void preOrder(node* RT)//先序序列打印 { if (RT!=NULL) { cout<<RT->data; preOrder(RT->left); preOrder(RT->right); } } void inOrder(node* RT)//中序序列打印 { if (RT!=NULL) { preOrder(RT->left); cout<<RT->data; preOrder(RT->right); } } void postOrder(node* RT)//后序序列打印 { if (RT!=NULL) { preOrder(RT->left); preOrder(RT->right); cout<<RT->data; } } int main() { node* T=NULL; cout<<"请输入先序序列(其中#代指空子树):"; T=creatBT(T);//先序序列种树 cout<<"\n先序序列输出:"; preOrder(T);//先序序列打印 cout<<"\n中序序列输出:"; inOrder(T); cout<<"\n后序序列输出:"; postOrder(T); return 0; }