二叉树遍历的程序

1、编程产生值在[0,99]之间的随机数20-30个,存入文件a.txt;2、读取文件a.txt,使用第1步中产生的20-30个随机数,编程实现二叉树的建立(二叉链表),... 1、编程产生值在[0,99]之间的随机数20-30个,存入文件a.txt;
2、读取文件a.txt,使用第1步中产生的20-30个随机数,编程实现二叉树的建立(二叉链表),要求按照随机数产生的顺序插入接点并使左节点值小于父节点,右节点值大于/等于父节点;并要求在1、2步之间可以暂停程序运行,使用手工方式替换产生的a.txt;
3、对第2步中产生的二叉树,编程实现前序、中序、后序遍历,遍历结果存入文件b.txt。
拜托各位牛人帮帮忙啊。。。
展开
 我来答
佳之星勇
2010-12-05 · TA获得超过128个赞
知道答主
回答量:114
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
using namespace std;

typedef struct BinaryTree
{
char data;
struct BinaryTree *lchild,*rchild;
}BinaryTree,*BiTree;

void CreateBiTree(BiTree &T)
{
char z;
if((z=getchar())==' ')
T=NULL;
else
{
T=(BinaryTree*)malloc(sizeof(BinaryTree));
T->data=z;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
//先序遍历
void preBiTree(BiTree T)
{
if(T!=NULL)
{
cout<<T->data;
preBiTree(T->lchild);
preBiTree(T->rchild);
}
}
//中序遍历
void InBiTree(BiTree T)
{
if(T!=NULL)
{
InBiTree(T->lchild);
cout<<T->data;
InBiTree(T->rchild);
}
}
//后序遍历
void PostBiTree(BiTree T)
{
if(T!=NULL)
{
PostBiTree(T->lchild);
PostBiTree(T->rchild);
cout<<T->data;
}
}
int Depth(BiTree T)
{
if(T==NULL)
{
return 0;
}
else
return 1+(Depth(T->lchild)>Depth(T->rchild)? Depth(T->lchild):Depth(T->rchild));
}

void main()
{
BiTree T;
cout<<"请输入相应二叉树:"<<endl;
CreateBiTree(T);
cout<<"二叉树的先序遍历为:"<<endl;
preBiTree(T);
cout<<endl;
cout<<"二叉树的中序遍历为:"<<endl;
InBiTree(T);
cout<<endl;
cout<<"二叉树的后序遍历为:"<<endl;
PostBiTree(T);
cout<<endl;
cout<<"二叉树的深度为:"<<endl;
cout<<Depth(T)<<endl;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式