- 0
- 0
- 约2.69千字
- 约 5页
- 2020-09-07 发布于河北
- 举报
实验三 二叉树的遍历
一、 实验目的
1. 进一步掌握指针变量的含义。
2. 掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。
3. 掌握用指针类型描述、访问和处理二叉树的运算。
二、 实验要求1. 认真阅读和掌握本实验的参考程序。
2. 按照对二叉树的操作需要,在创建好二叉树后再通过遍历算法验证创建结果。
3. 保存程序的运行结果,并结合程序进行分析。
三、 实验内容 以下参考程序是按完全二叉树思想将输入的字符串生成二叉树,并通过遍历来验证二叉树创建正确与否,但不能创建非完全二叉树,请认真研究该程序,然后模仿教材例6.4初始化方式创建二叉树:所有的空指针均用#表示,如教材图6-13对应的二叉树,建立时的初始序列为:AB#D##CE##F##。
源代码
#define max 30
#define NULL 0
#include stdio.h
#include stdlib.h
typedef struct BNode
{
char data; /*数据域 */
struct BNode *lchild,*rchild;; //指向左右子女
}BinTree;
void preorder(BinTree *t); //声明先根遍历函数
void inorder(BinTree *t); //声明中根遍历函数
void postorder(BinTree *t);//声明后根遍历函数
int leafs(BinTree *b); //声明求叶子数函数
int treedeep(BinTree *p); //声明求树的深度函数
BinTree *swap(BinTree *p); //声明交换二叉树的所有结点的左右子树的函数
BinTree *create_tree()
{
BinTree *p;
char ch;
ch=getchar();
if (ch==#)
return NULL;
else
{
p=(BinTree *)malloc(sizeof(BinTree)); //构造新结点
p-data=ch;
p-lchild =create_tree(); //构造左子树
p-rchild =create_tree(); //构造右子树
return p;
}
}
void main()
{
int i,n;
char str[max];
BinTree *root;//根结点
printf(Input :,n);
root=create_tree();
printf(二叉树已成功创建! 结点序列为:);
//先根遍历
printf(\n先根遍历结果\n);
preorder(root);
printf(\n);
//中根遍历
printf(\n中根遍历结果\n);
inorder(root);
printf(\n);
//后根遍历
printf(\n后根遍历结果\n);
postorder(root);
printf(\n);
printf(\n叶子数为:%d\n,leafs(root));
printf(\n树的深度为:%d\n,treedeep(root));
printf(\n交换左右子树后先序遍历序列为\n);
preorder(swap(root));
printf(\n\n);
}
void preorder(BinTree *t)
{
if(t!=NULL)
{
printf( %c ,t-data);
if(t-lchild)
{
printf(-);
preorder(t-lchild);
}
if(t-rchild)
{
printf(-);
preorder(t-rchild);
}
}
}
void inorder(BinTree *t)
{
if(t!=NULL)
{
inorder(t-lchild);
printf( %c ,t-data);
inorder(t-rchild);
}
}
void postorder(BinTree *t)
{
if(t!=NULL)
{
postorder(t-lchild);
postorder(t-rchild);
printf( %c ,t-data);
}
}
int leafs(BinTree *b)//求叶子数
{
int num1,num2;
if(b==NU
您可能关注的文档
- 《有机化学实验》知识及技能训练.doc
- 《生的食物和熟的食物》实验记录表.doc
- 《科学小实验》拓展课程指导纲要.doc
- 《渔业船舶法定检验规则》(2000)救生.pdf
- 一汽-大众实验室13条重点介绍内容.doc
- 三层交换机实验.doc
- 三相异步电动机空载、短路及负载实验.doc
- 上机实验9 多态和抽象类.doc
- 上海2015年上半年高级水质检验工理论考试试题.doc
- 不一样的电荷 课上实验要求.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 2021届高考物理三轮冲刺重难点训练:磁场(解析版).pdf VIP
- IDC数据时代2025白皮书_数据时代2025资源The Digitization of the World From Edge to Core.pdf VIP
- 《民航服务心理学(第2版)》项目二(改).pptx
- 民航服务心理学(第2版)严光玉课后习题答案.pdf VIP
- 《民航服务心理学(第2版)》课程标准.docx VIP
- 高考物理压轴题.pdf VIP
- 【高考真题】2023年新高考物理真题试卷——湖南卷(含答案).pdf VIP
- 欧洲规范-NF P18-561-中文版.pdf VIP
- 调相机系统构成及原理培训教材(课件49张).ppt VIP
- 2024届浙江省杭州市高考一轮复习培优提升卷(一)语文试卷含答案.docx VIP
原创力文档

文档评论(0)