【数据结构导论之树和二叉树总结篇】
来源:互联网 发布:宣传单排版软件 编辑:程序博客网 时间: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度。
总结:
- 【数据结构导论之树和二叉树总结篇】
- 《数据结构导论之二叉树》
- 算法导论------------基本数据结构之二叉树
- 《数据结构导论之树、二叉树、森林间的转换》
- 算法导论第10章 基本数据结构之二叉树
- 《数据结构导论》之树
- 【自考】数据结构导论——二叉树
- 实用数据结构总结之二叉树遍历
- 数据结构之二叉树基础知识总结
- 数据结构之 排序二叉树总结
- 数据结构总结-- 树和二叉树
- 数据结构---二叉树总结
- 学习《算法导论》 二叉查找树 总结
- 数据结构之树、二叉树和森林
- 数据结构之树和二叉树
- 数据结构和算法系列之 二叉树
- 《数据结构和算法》之二叉树
- 数据结构之广义表和二叉树
- 导航JavaScript
- centos6.8安装jdk1.7
- Javascript > 菜鸟新人的一点小整理&积累
- js获取select标签选中的值
- C++数组元素 排序 去重
- 【数据结构导论之树和二叉树总结篇】
- C++ 根据二分查找的函数
- 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
- Mysql必知必会(笔记)【插入数据,更新和删除数据,创建和操纵表,视图】
- glide的基本使用
- Linux环境下的Shell使用进阶(二)
- 自考总结
- Lightoj1000【简单A+B】
- Java-LIS最长递增子序列(动态规划实现)