【数据结构导论之树和二叉树总结篇】

来源:互联网 发布:宣传单排版软件 编辑:程序博客网 时间:2024/05/21 14:00

前言:

树是一类重要的数据结构,作为树形结构的代表,无论在自考的学习过程还是软考的学习过程中,我们都与之深之接触。今天,小编来总结一下树,此篇博文以数据结构导论第四章为参考,进行总结!希望给看博文的你带来收获!

核心:


想一想,关于树?我们都涉及到了什么:
这个章节的标题为树和二叉树。里面的内容主要围绕树、森林和二叉树以及它们之间的关系来展开本章节的论述的!其中遍历、转换、求结点这些属于常考内容,且容易掌握的,二存储结构这块内容涉及到代码的实现,是数据结构导论中最后的大题考试内容。其中,还有里面的小知识点,最关键的还是多做题来实践啊!

一、导图优先

二、重要的知识点小结

1.深度为k的树最多有2^k -1个节点;

2.任意二叉树,度为0的节点数=度为2的节点数+1;

3.如果i为父亲的编号,则孩子的编号为2i和2i+1;

4.结点的度:树上任一结点所拥有的子树的数目称为该结点的度。

5.二叉树第i层上的结点数目最多为2^(i-1)(i≥1)。

6.如果需要顺序存储的非完全二叉树,首先必须用某种方法将其转化为完全二叉树,为此可增设若干个虚拟结点。

7.二叉链表,具有n个结点的二叉树,有2n个指针域,其中只有n-1个用来指向结点的左、右孩子,其余的n+1个指针域为NULL.

8.给定一组值P1,...,Pk,如何构造一棵有K个叶子且分别以这些值为权的判定树,使用权得其平均比较次数最小。满足上述条件的判定树称为哈夫曼树。

9.哈夫曼树中没有度数为1的分支节点。给定一组值P1...Pk,如何构造一棵有K个叶子且分别以这些值为权的判定树,使用权得其平均比较次数最小。满足上述条件的判定树称为哈夫曼树

三、遍历

  • 二叉树的遍历

遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。

前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
eg:求下面树的三种遍历

 

前序遍历:abdefgc

中序遍历:debgfac

后序遍历:edgfbca

注意:这里的三种遍历,体现在二叉树中的每棵子树中,按照这个规则去遍历

  • 森林的遍历

只有前序遍历和中序遍历。

前序遍历:根节点->左子树

中序遍历:子树->根节点


四、转化

树转二叉树


1.连接兄弟结点

2.保留第一个兄弟结点与父结点的连接,断开其他兄弟与父结点的连接

3.以根为轴心顺时针旋转45度。







总结:

学习的过程中,要善于总结,这也是成长的过程,未来,加油吧!


1 0
原创粉丝点击