《数据结构与算法》实验指导与报告书exp6_Bitree..docVIP

  • 16
  • 0
  • 约1.18万字
  • 约 17页
  • 2017-01-09 发布于重庆
  • 举报

《数据结构与算法》实验指导与报告书exp6_Bitree..doc

《数据结构与算法》实验指导与报告书exp6_Bitree.

《数据结构与算法》实验指导与报告书 ______学年 第____ 学期 专 业: ___________________________________________ 学 号: ___________________________________________ 姓 名: ___________________________________________ 实验名称:___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________ 计算机科学与工程学院 2014 实验六 二叉树 【实验目的】 1、掌握二叉树的基本存储表示。 2、掌握二叉树的遍历操作实现方法(递归和非递归方法)。 3、理解并实现二叉树的其他基本操作。 4、掌握二叉树的重要应用---哈夫曼编码的实现。 【实验学时】 4-6学时 【实验预习】 回答以下问题: 1、二叉树的二叉链表存储表示。 2、二叉树的三种基本遍历方式。 3、解释哈夫曼树和带权路径长度WPL。 【实验内容和要求】 编写程序exp6_1.c,实现二叉树的链式存储及基本操作。 以下图所示的二叉树实现二叉树的二叉链表存储及基本操作,回答下列问题,补充完整程序,并调试运行验证结果。 (1)按照先序序列建立该二叉树。 读入的字符序列为应为:__________________________________(*表示空指针)。 (2)该二叉树的三种遍历序列: 先序序列:__________________________; 中序序列:__________________________; 后序序列:__________________________; (3)按层次遍历该二叉树,得到的序列为:_______________________。 (4)该二叉树的深度为:________。 (5)该二叉树的叶子结点数为:___________。 (6)交换该二叉树所有结点的左右次序得到的新二叉树为:(画出新二叉树的图) (7)新二叉树的三种遍历序列分别为: 先序序列:__________________________; 中序序列:__________________________; 后序序列:__________________________; exp6_1.c参考程序如下: #includestdio.h #includemalloc.h #define MAX 20 /*---二叉树的二叉链表存储表示---*/ typedef struct BTNode { char data ; /*结点数据*/ struct BTNode *lchild; /*左孩子指针*/ struct BTNode *rchild ; /*右孩子指针*/ }*BiTree; /*---非递归遍历辅助队列---*/ typedef struct { BiTree data[MAX]; int front,rear; } queue; void createBiTree(BiTree *t); /*先序遍历创建二叉树*/ void PreOrder(BiTree p); /*先序遍历二叉树*/ void InOrder(BiTree p); /*中序遍历二叉树*/ void PostOrder(BiTree p); /*后序遍历二叉树*/ void RPreorder(BiTree p); /*先序遍历的非递归算法*/ void RInorder(BiTree p); /*中序遍历的非递归算法*/ void RPostorder(BiTree p); /*后序遍历的非递归算法*/ int depth(BiTree t); /*求二叉树的深度算法*/ BiTree gettreenode(char x,BiTree lptr,BiTree rptr);/*后序复制二叉树-建立结点*/ BiTree copytree(BiTree t); /*以后序遍历的方式复制二叉树*/ BiTree swap(BiTree b); /*交换二叉树的结点的左右孩子*/ void ccOrder(BiTree t);

文档评论(0)

1亿VIP精品文档

相关文档