您的位置:首页 > 理论基础 > 数据结构算法

数据结构:树的遍历!按先序遍历创建一棵树,分别以先序、中序、后序遍历输出

2014-06-08 13:19 477 查看
题目:树的遍历!按先序遍历创建一棵树,分别以先序、中序、后序遍历输出

样例输入
A B # D # # C E # # F # #
样例输出
PreOrder: A B D C E F

InOrder: B D A E C F

PostOrder: D B E F C A

代码:

//按先序遍历创建一棵树,分别以先序、中序、后序遍历输出
#include <iostream>
using namespace std;

struct node{
char ch;
node *left, *right;
};

node* creat() {
node *root = new node;
char c;
cin >> c;
if(c == '#') root = NULL;
else {
root->ch = c;
root->left = creat();
root->right = creat();
}
return root;
}

void preOrder(node *root) {
if(root == NULL)  return;       //这条语句不能忘!!!
cout << " " << root->ch;
preOrder(root->left);
preOrder(root->right);
}

void inOrder(node *root) {
if(root == NULL)  return;
inOrder(root->left);
cout << " " << root->ch;
inOrder(root->right);
}

void postOrder(node *root) {
if(root == NULL)  return;
postOrder(root->left);
postOrder(root->right);
cout << " " << root->ch;
}

int main() {
node *root = creat();
cout << "preOrder:";
preOrder(root);
cout << endl;
cout << "inOrder:";
inOrder(root);
cout << endl;
cout << "postOrder:";
postOrder(root);
cout << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐