第五章学习小结

1,本章学习的二叉树为我打开了一个新的世界,与之前一对一的数据结构相比,一对多的存储结构二叉树更加灵活和方便,也更加的有趣。

树是以分支关系确定的层次机构,在树结构中,二叉树最为常用,满二叉树和完全二叉树是两种特殊形态的二叉树,完全二叉树仅适用于顺序存储结构,一般的二叉树更适合链式存储结构(又称为二叉链表)。

二叉树的遍历是最基础的算法,基于二叉树的递归定义,遍历二叉树的递归算法可分为先序遍历,中序遍历和后序遍历。

中序遍历的递归算法:

void  InOrder(BiTree T)

{

    if(T!=NULL)

   {

        InOrder(T->lchild);  //  中序遍历左子树

         cout << T->data;  //   访问根结点

         InOrder(T->rchild); //    中序遍历右子树

    }

 }

改变输出语句的顺序,即可实现先序和后序遍历的算法

另,可利用栈将递归算法改写成非递归算法

由二叉树的先序序列和中序序列,或由其后序序列和中序序列均能唯一地确定一颗二叉树

 

树的存储结构

(1)双亲表示法:易求双亲,易求根,但求结点的孩子需遍历整个结构

 (2)孩子表示法

  (3)孩子兄弟表示法:便于将一般的树结构转换为二叉树进行处理,较普遍

森林的遍历算法: 先序遍历和中序遍历

哈夫曼树

 

2.学习心得:本章的作业和实践都有视频可以学习,老师的讲解丰富了课本知识,拓宽了学习内容,使我获益匪浅,在提交作业后我有按照自己的理解复现代码,在自己动手的过程中,进一步加深了对知识的理解,相比前几章掌握得要好一点

3.学习目标:勤于动手,学以致用

posted @ 2020-05-31 21:38  田晓涵  阅读(139)  评论(0编辑  收藏  举报