数据结构和算法-7-二叉树

树的一些通用概念:

:由n(n>=1)个有限节点组成一个具有层次关系的集合,结合了有序数组(查找快)和链表(插入/删除快)的优点,如计算机中的文件系统。

:节点由边连接, java中常用引用来表示边;

:树顶端只有一个节点,称之为根,一棵树只有一个根,从根到其他任何节点都必须有且只有一条路径;

路径:顺着连接节点的边,从一个节点到另一个节点,所经过的节点的顺序排列;

父节点:除根外,每个节点都有一条边向上连接到另一个节点,上面的节点称为下面节点的父节点;

子节点:每个节点都可能有一条或多条边向下连接其他节点,这些节点就称为它的子节点;

叶节点:没有子节点的节点称为叶子节点,简称叶节点;

子树:根节点下的每个节点及其子孙节点,都可以算作一个子树;

访问:当程序控制流程到达某个节点,并执行某种操作,就称为访问这个节点,若只是路径经过,则不算访问;

遍历:按某种特定顺序访问树中所有节点;

:一个节点的层数指从根节点到这个节点的距离;

二叉树:

二叉树:每个节点最多只能有两个子节点,即:左子节点,右子节点;

是最简单,也是最常用的一种树;

哈夫曼算法就是使用二叉树来压缩数据;

二叉搜索树:任何一个节点的左子节点的关键字值小于这个节点,右子节点关键字值大于等于这个父节点;

二叉树的实现:

1. 创建一个节点的基类:

数据结构和算法-7-二叉树_第1张图片

2. 创建树的基类:

数据结构和算法-7-二叉树_第2张图片

3. 二叉树的节点类:

4. 二叉树的实现类,代码稍多,其中会有些注释作为说明:

数据结构和算法-7-二叉树_第3张图片
数据结构和算法-7-二叉树_第4张图片
数据结构和算法-7-二叉树_第5张图片
数据结构和算法-7-二叉树_第6张图片
数据结构和算法-7-二叉树_第7张图片
数据结构和算法-7-二叉树_第8张图片

5. 二叉树的使用测试:

数据结构和算法-7-二叉树_第9张图片

 我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章

数据结构和算法-7-二叉树_第10张图片

你可能感兴趣的:(数据结构和算法-7-二叉树)