一、学习总结 1.1、树结构思维导图 1.2、树结构学习体会 树的操作大多通过递归算法实现,而递归算法是我目前还比较难以熟练运用的。 并查集,书中写的理解起来比较难。 在哈夫曼树里,WPL 的值也等于所有非叶子结点值之和,我对于哈夫曼树的构建还不是很熟悉。 线索二叉树还在原来二叉树的根结点上增加了一 ...
分类:
其他好文 时间:
2018-05-05 20:41:21
阅读次数:
217
简述: 二叉树是十分重要的数据结构,主要用来存放数据,并且方便查找等操作,在很多地方有广泛的应用。 二叉树有很多种类,比如线索二叉树,二叉排序树,平衡二叉树等,本文写的是最基础最简单的二叉树。 思路: 二叉树的建立采用的是递归的思想:给定一个指向根节点的指针,然后递归调用ceate()函数,自动生成 ...
分类:
其他好文 时间:
2018-04-12 00:24:02
阅读次数:
236
1. 排序二叉树、最优二叉树、线索二叉树、平衡二叉树等是二叉树的特殊形式,分别有各自的用途,排序二叉树用于快速查找、最优二叉树用于无损压缩编码、线索二叉树通过保存结点的前驱后继信息以方便遍历、平衡二叉树通过改进排序二叉树提高了其整体查找效率。 2.对于最优二叉树用于压缩编码,非常不解树是如何用于编码 ...
分类:
其他好文 时间:
2018-02-27 01:02:41
阅读次数:
163
我们知道满二叉树只是一种特殊的二叉树,大部分二叉树的结点都是不完全存在左右孩子的,即很多指针域没有被充分地利用。另一方面我们在对一棵二叉树做某种次序遍历的时候,得到一串字符序列,遍历过后,我们可以知道结点之间的前驱后继关系,也就是说,我们可以很清楚地知道任意一个结点,它的前驱和后继是哪一个。可是这是 ...
分类:
其他好文 时间:
2018-02-26 11:14:49
阅读次数:
218
一、二叉树 1.完全二叉树 2.满二叉树 3.平衡二叉树 4.红黑树 5.树堆 6.线索二叉树 二、堆 1.最大/最小堆 2.二项堆 3.斐波那契堆 4.左偏树 三、B树 1.B树 2.B+树 3.B*树 四、字典树 ...
分类:
其他好文 时间:
2017-11-25 14:22:30
阅读次数:
170
二叉树是十分重要的数据结构,主要用来存放数据,并且方便查找等操作,在很多地方有广泛的应用。 今天主要写的最基本的二叉树,后续会继续写线索二叉树,二叉排序树,平衡二叉树等。 二叉树的建立思路仍然是采用的递归的思想,给定一个指向根节点的指针,然后递归调用ceate()函数,自动生成一个二叉树。就像是在地 ...
分类:
其他好文 时间:
2017-11-12 20:14:01
阅读次数:
174
线索二叉树 1.定义 n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。 这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同 ...
分类:
其他好文 时间:
2017-10-15 11:25:48
阅读次数:
155
#include "string.h"#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h" #define OK 1#define ERROR 0#define TRUE ...
分类:
编程语言 时间:
2017-10-07 19:48:56
阅读次数:
191
相对于顺序存储结构而言,利用链式存储结构的二叉树已经有了很高的存储效率,单是还是有空间上未利用到的地方,比如说叶子结点的左右孩子是空的,指向左右孩子的指针就是空闲的,没有被利用到;而且,有时候给定一个结点,我们需要查找该结点的前驱结点和后继结点,如果按照中序遍历的做法去查找的话,对于一个非叶子结点, ...
分类:
其他好文 时间:
2017-08-27 17:08:53
阅读次数:
249