- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 数据结构——树(7)——二叉搜索树及其操作原理
二叉树与二叉搜索树在之前的文章中,我们提到过三叉树,n叉树,但是我们实际用的最多却是二叉树,因为这样的结构更适合我们编程和更适合我们使用递归的方式。所以我们可以限制孩子的数量使得生成的树更容易实施。那么怎么定义二叉树呢? - 树中的每个节点至多有两个孩子。 - 除根节点之外的每个节点均被指定为其父项的左侧子项或右侧子项。第二个条件强调了二叉树中的子节点相对于其父母排序。也就是说当子节点
2018-01-30 18:00:43 660
原创 数据结构——树(6)——树的遍历C++代码
这篇博文,主要验证上篇的树的遍历。再多的理论解释都不如来一个实例实际。现在就拿一个实例来测试这次的遍历。假设我们有这样的一棵树: 我们要用不同的方式去遍历。那么我们首先要做的就是,先建立一个个节点,然后再进行连接成树。代码如下:#include iostream>#include string>#include "Queue.h"using namespace std;/*
2018-01-26 16:15:16 1652
原创 数据结构——树(5)——树的先序,中序,后序,层次遍历
树的存储结构之前我们提到过堆是一棵特殊的树,在堆的存储方式中,我们选择了数组的方式去存储。因为只要知道一个节点的位置我们就能找到其他的节点的位置。但是前提是堆是一棵完全二叉树。树的结构多种多样,没人规定说一个节点只能有一个孩子。 我们先看下图,一个最简单的二叉树: 怎么表达?看到箭头,我们应该立马反应过来一个基本的工具,没错就是指针,应该立马反应过来一个数据结构,那就是链表! 对
2018-01-25 23:49:09 3534
原创 数据结构——树(4)——什么是树?
树的递归结构在正式学习树(tree)这个结构之前,我们实际上已经接触过这个结构了,堆(heap)实际上就是一个特殊的树,一棵完全二叉树。现在我们从一幅图中来了解一下什么是树状结构: 这幅图主要说明cart这个单词的所有可能的组合结构,按照常理,我们先考虑三个字母的排列,然后由三个字母的排列中再进行拆分,最后重复拆分直到仅有一个字母。这个套路是不是很像我们之前学过的devide —— co
2018-01-23 16:25:21 2990
原创 数据结构——树(3)——堆的建立与排序
二叉堆的建立在继续学下去之前,我们先来看看我们学习堆这个数据结构到底有什么意义,或者说有什么用。 - 排序(堆排序,heap sort) - Google map(即在两个地点之前寻找最短的路径) - 所有的优先队列问题 - 事件的模拟 - Huffman 编码(霍夫曼编码)那么我们在上次提到过一个问题,我们所有的操作都是建立在一个已经建好的堆中,但是现实中,我们怎么可能那么轻松
2018-01-22 15:26:52 592
Prog-in-Cpp,完整版
2017-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人