- 0
- 0
- 约1.59千字
- 约 4页
- 2022-06-30 发布于上海
- 举报
PAGE
PAGE 3
实验二 二叉树的创建与访问算法的设计
一、目的
本实验的目的是通过理解二叉树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。
二、题目
二叉树的创建与访问算法的设计三、实验类型
设计性。本实验设计了二叉树的创建与访问算法。四、要求及提示
说明:以下4个题中,任意选作一题。
1、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
从键盘输入二叉树的元素,建立二叉树。
实现二叉树的先序遍历算法。
2、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
从键盘输入二叉树的元素,建立二叉树。
实现二叉树的中序遍历算法。
3、【问题描述】
从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。
【基本要求】
实现以下基本操作:
从键盘输入二叉树的元素,建立二叉树。
实现二叉树的后序遍历算法。
4、【问题描述】
采用某种遍历方法查找二叉树中的结点值为 x(x 为从键盘输入的一个值)的结点,如果找到则返回其双亲结点值;否则返回值 0
【基本要求】
实现以下基本操作:
从键盘输入二叉树的元素,建立二叉树。
实现查找算法,并输出双亲结点值。
五、实验程序#includestdio.h #includestring.h #includestdlib.h #includemalloc.h typedef struct Node
{
char data;
struct Node *lchild,*rchild;
}JD;
JD *Create(JD *t)
{
char s; scanf(%c,s); if(s==#)
t=NULL;
else
{
if(!(t=(JD *)malloc(sizeof(JD)))) printf(Error!);
else
{
t-data=s;
t-lchild=Create(t-lchild); t-rchild=Create(t-rchild);
}
}
return t;
}
void inorder(JD *t)
{
if(t!=NULL)
{
inorder(t-lchild); printf(%c\t,t-data); inorder(t-rchild);
}
}
void preorder(JD *t)
{
if(t!=NULL)
{
printf(%c\t,t-data); preorder(t-lchild); preorder(t-rchild);
}
}
void afterorder(JD *t)
{
if(t!=NULL)
{
afterorder(t-lchild); afterorder(t-rchild); printf(%c\t,t-data);
}
}
void main()
{
JD *t; t=NULL;
printf(请以先序遍历依次为二叉树赋值:\n); t=Create(t);
printf(以中序遍历输出:\n); inorder(t);
printf(\n);
printf(以先序遍历输出:\n); preorder(t);
printf(\n);
printf(以后序遍历输出:\n); afterorder(t);
printf(\n);
}
六、输出结果
七、实验心得
通过具体的上机操作实例,更加形象深刻地了解二叉树的相关特性, 掌握二叉树的存储结构、二叉树的遍历等。
1、 递归遍历更为简洁方便,而且不易出错。
2、在操作过程中,要注意细节方面的问题。
3、在编译的整个过程中,结点类型要一致。
您可能关注的文档
最近下载
- 小学2026年学雷锋主题班会教学设计(5篇).docx VIP
- 特警理论考试题库及答案.doc VIP
- 新解读《GB_T 35644 - 2017地下管线数据获取规程》最新解读.docx VIP
- (PPT,3版)跨国公司经营与管理第一章 跨国公司总论.pptx VIP
- 学雷锋纪念日主题班会.pptx VIP
- 中心组“树立和践行正确政绩观”专题研讨发言提纲.docx VIP
- 沪科黔科版综合实践活动二下 天气预报 活动一《有用的天气预报》课件.ppt VIP
- 档案鉴定销毁审批表.docx VIP
- 电子烟危害教育主题班会.pptx VIP
- 2025年初级压缩机操作工(五级)技能认定理论考试题库资料(含答案).pdf
原创力文档

文档评论(0)