文档介绍:实验四树与二叉树
一、实验目的
掌握树与二叉树的基本操作:建立树、遍历树、哈夫曼树等相关运算。
二、实验要求包含有头文件和main函数;
格式正确,语句采用缩进格式;
设计子函数实现题目要求的功能;
编译、连接通过,熟练使用命令键;
运行结果正确,输入输出有提示,格式美观。
三、实验设备、材料和工具
奔腾2计算机或以上机型
turboc2,win-tc
四、实验内容和步骤
实验内容:
分析程序。
完成程序编写和补充
步骤:
确定数据的结构;
利用main函数调用各子函数;
调试、分析运行结果。
五、实验报告要求
根据实验内容初步设计好程序,并从理论上排除错误;
针对程序的健壮性准备好测试数据;
结果分析中如实填写运行后的结果,记录调试过程中产生的重要问题和解决方法。
六、根据实验过程填写下面内容
基础部分
。
、中序遍历、后序遍历函数,参照教材内容,写出一个完整程序验证二叉树的建立和遍历结果。
程序:
#include ""
void Visit(char ch)
{
printf("%c ",ch);
}
void PreOrder(BiTree root)
/*先序遍历二叉树, root为指向二叉树(或某一子树)根结点的指针*/
{
if(root!=NULL)
{
Visit(root->data);
PreOrder(root->LChild);
PreOrder(root->RChild);
}
}
void InOrder(BiTree root)
/*中序遍历二叉树, root为指向二叉树(或某一子树)根结点的指针*/
{
if(root!=NULL)
{
PreOrder(root->LChild);
Visit(root->data);
PreOrder(root->RChild);
}
}
void PostOrder(BiTree root)
/* 后序遍历二叉树,root为指向二叉树(或某一子树)根结点的指针*/
{
if(root!=NULL)
{
PreOrder(root->LChild);
PreOrder(root->RChild);
Visit(root->data);
}
}
void main()
{
BiTree T;
printf("按照扩展先序遍历输入结点():\n");
CreateBiTree(&T);
printf("先序遍历序列为:");
PreOrder(T);
printf("\n中序遍历序列为:");
InOrder(T);
printf("\n后序遍历序列为:");
PostOrder(T);
printf("\n");
}结果截图:
,分别统计二叉树中叶节点、度为1和度为2的结点个数,并输出统计结果。
程序:
#include ""
int v0,v1,v2;
void PreOrder(BiTree root)
{
if(root!=NUL