国家开放大学《数据结构》课程实验报告(实验4——二叉树)参考答案...

国家开放大学《数据结构》课程实验报告(实验4——二叉树)参考答案...

2023年6月22日发(作者:)

《数据结构》课程实验报告

(实验4二叉树)

学生姓名

班 级

实验名称

学 号

指导老师

实验成绩

实验报告

实验目的:

(1)根据数组tree,建立与该二叉树对应的链式存储结构。

(2)对该二叉树采用中序遍历法显示遍历结果。

实验要求:

(1)在主函数中,通过键盘输入建立设定的完全二叉树的顺序存储结构。

(2)设计子函数,其功能为将顺序结构的二叉树转化为链式结构。

(3)设计子函数,其功能为对给定二叉树进行中序遍历,显示遍历结果。

(4)通过实例判断算法和相应程序的正确性。

实验基本原理:

(1)顺序存储的二叉树转化为链式存储结构,采用递归算法,递归函数的形式为Creab(tree,n,i,b),其中形参:tree为顺序存储二叉树的数组,n为二叉树的结点数,i是二叉树某结点在数组tree中的下标(初始值为1),b为要建立的链式存储二叉树结点指针。转化时,首先建立*b结点,将tree[i]的值赋给*b的数据域,再调用递归函数分别构造左子树和右子树。

(2)中序遍历采用递归算法,即中序遍历左子树、访问根结点、中序遍历右子树。

程序代码:

/*实验3.1 二叉树的顺序存储结构和链式存储结构*/

#include

#include

#define MaxSize 20

/*二叉树链式存储结构结点定义*/

typedef struct BTreeNode

{

char data;

struct BTreeNode * left;

struct BTreeNode * right;

}BTreeNode;

BTreeNode * Creab(char *tree,int n,int i,BTreeNode *b); /*建立二叉树链式结构*/

void Inorder(BTreeNode *BT); /*中序遍历二叉树*/

void main()

{

BTreeNode *BT; /*根结点指针*/

char tree[MaxSize],c;

int n=0; /*二叉树的结点数*/

int i=1; /*结点在数组tree中的下标*/

printf("请输入完全二叉树的结点值(连续输入字符,以回车结束输入):");

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687384330a6042.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信