问一道c++题,二叉树方面的

来源:百度知道 编辑:UC知道 时间:2024/05/08 14:39:44
利用二叉链表作为存储结构建立一棵二叉树,每个结点中存放一种水果名(例如apple、orange、banana等,并要求从键盘输入),结点数不少于5个。要求分别以先序、中序和后序进行遍历,输出遍历结果.

/*
* 作者: 陈先文
* 日期: 2007-12-08 星期六
*
* 说明: 楼主您没有具体输入办法, 本人只好将输入这块先空在那
*/

#include <string>
#include <iostream>

using namespace string;

//二叉树结构
typedef struct tagBiTree{
string name;
tagBiTree* leftChild, rightChild;
} BiTree;

//先序遍历
void preorderTrav(BiTree* p) {
cout << p->name << ' ';
if(p->leftChild != NULL) {
preorderTrav(p->leftChild);
}
if(p->rightChild != NULL) {
preorderTrav(p->rightChild);
}
}

//中序遍历
void inorderTrav(BiTree* p) {
if(p->leftChild != NULL) {
inorderTrav(p->leftChild);
}
cout << p->name << ' ';
if(p->rightChild != NULL) {
inorderTrav(p->rightChild);
}
}

//后序遍历
void postorderTrav(BiTree* p