数据结构(C++)编程练习,关于二叉树的

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:32:08
要求: 二叉树二叉链表实现
(1) 构造(包括拷贝构造)和析构函数(删除所有结点函
数);
(2) 创建二叉树,规则:左子树的值都比根结点小,右子
树的值都不比根结点小;
(3) 打印二叉树(可以使用先序、中序、后序遍历实
现);
(4) 按层次打印二叉树;
(5) 分别求二叉树中叶子结点、分支结点的个数;
(6) 分别求二叉树的高度(层次数);
(7) 操作平台 VC6.0;
(8) 要求给处详细注释;
(9) 要求在主函数中可以实现这些功能。

#include<stdio.h>
#include<malloc.h>
#define M 10
typedef int DataType;/*元素的数据类型*/
typedef struct node
{
DataType data;
struct node *lchild,*rchild;
}BitTNode,*BiTree;
int front=0,rear=0;
BitTNode *que[10];
BitTNode *creat()
{
BitTNode *t;
DataType x;
scanf("%d",&x);
if(x==0) t=NULL;
else
{
t=(BitTNode *)malloc(sizeof(BitTNode));
t->data=x;
t->lchild=creat();
t->rchild=creat();
}
return(t);
}/*creat*/

/* 前序遍历二叉树t */
void preorder(BiTree t)
{
if(t!=NULL)
{
printf("%4d",t->data);
preorder(t->lchild);
preorder(t->rchild);
}
}

/* 中序遍历二叉树t */
void inorder(BiTree t)
{
if(t!=NULL)
{
inorder(t->lchild);
printf("%4d",t->data);
inorde