2012《数据结构》上机指导-树与二叉树.docVIP

  • 11
  • 0
  • 约2.73千字
  • 约 4页
  • 2017-06-08 发布于重庆
  • 举报

2012《数据结构》上机指导-树与二叉树.doc

2012《数据结构》上机指导-树与二叉树

实验2 树与二叉树 一、实验目的 熟练掌握二叉树在二叉链表存储结构中的常用遍历方法:先序递归遍历、中序递归和非递归遍历、后序递归遍历。了解二叉树的按层遍历、先序非递归遍历及后序非递归遍历。 用树解决实际问题,如哈夫曼编码等。加深对“数据结构+算法 程序”的理解和认识,提高编写较复杂程序的能力。 二、实例 二叉树的建立和各种遍历算法在教材中,已经有很详细的介绍。本例题将介绍另外一种建立二叉树的算法。同时介绍对“遍历算法”灵活应用:修改原有二叉树中结点的数值;将二叉树中每个结点的左右子树进行交换。介绍求二叉树深度的算法。 本例介绍的二叉树的建立是一个递归方法,与二叉树先序遍历思路有点相似。数据的组织是先序遍历的顺序,但是当某结点的某孩子为空时以数据0来充当,也要输入。结合右图的二叉树,其数据的输入顺序应该是: 1 2 4 0 0 0 3 5 0 7 0 0 6 8 0 0 9 0 0。 若当前数据不为0,则申请一个结点存入当前数据。如果输入0表明是空(NULL),不分配结点。递归调用建立函数,建立当前结点的左右子树。 [源程序] #include typedef int ElemType; struct NodeType //定义结点 结构体 ElemType data; NodeType *lch,*rch; ; class BiTree //定义 二叉树类 publ

文档评论(0)

1亿VIP精品文档

相关文档