二叉树的遍历

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:54:19
1)问题描述:在主程序中提供下列菜单:
1…建立二叉树
2…前序遍历二叉树
3…中序遍历二叉树
4…后序遍历二叉树
0…结束
2)实验要求:定义下列过程:
CreateTree(): 按从键盘输入的前序序列,创建二叉树
PreOrderTree():前序遍历二叉树
InOrderTree():中序遍历二叉树
LaOrderTree(): 后序遍历二叉树
这是我的实验题目,它是要求我输入前序序列,然后我编写的程序输出前、中、后序遍历么? 谁帮我解决下~~谢谢
用c语言

都是经典的算法,网上一查就查得到,你也没有说你想用什么语言呀

#include "iostream.h"
//节点
struct node
{
int c;
node *left;
node *right;
};
typedef node* pNode;

/*
* 创建二叉树:
* 前序遍历创建二叉树,有效节点为非0值,空节点为0值.
* 务必将最末节点的下一级空节点以0输入,不然创建不正确.
*/
void CreateTree(pNode &pRoot)
{
int iValue;
cin >> iValue;
if(iValue == 0)
{
return;
}
else
{
pRoot = new node;
pRoot->c = iValue;
pRoot->left = NULL;
pRoot->right = NULL;

CreateTree(pRoot->left);
CreateTree(pRoot->right);
}
}
//删除树
void DeleteTree(pNode pRoot)
{
if(pRoot == NULL)
return;

pNode pTemp1,pTemp2;

pTemp1 = pRoot->left;
pTemp2 = pRoot->right;

delete pRoot;
pRoot = NULL;

DeleteTree(pTemp1);
DeleteTree(pTemp2);
}
//前序遍历函数
void