树结构的实际应用
原创 数据结构与算法

树结构的实际应用

- 大顶堆:堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, - 小顶对:每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆 - 大顶堆特点:`arr[i] >= arr[2*i+1] && arr[i] >= arr[2*i+2]` // i 对应第几个节点,i从0开始编号 - 小顶堆:`arr[i] <= arr[2*i+1] && arr[i] <
阅读全文
哈希表
原创 数据结构与算法

哈希表

这就要从数据的访问开始,我们都知道现在网站的数据基本上都是存储在数据库当中,当用户发送请求给服务器的时候,服务器就会从数据库中查询相应的数据而返回给用户,但是有没有想过,当大量用户同时访问数据库会造成什么样的问题呢?
阅读全文
时间复杂度
原创 数据结构与算法

时间复杂度

1. 事前估计法:通过分析某个算法的时间复杂度来判断哪个算法更优. 2. ~~事后统计法~~:这种方法可以用来统计算法的时间复杂度,但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素, 这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法速度更快,所以在实际中我们并不使用这个方法来统计算法的时间复杂度
阅读全文
栈
原创 数据结构与算法

* 子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中。 * 处理递归调用:和子程序的调用类似,只是除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中。 * 表达式的转换[中缀表达式转后缀表达式]与求值(实际解决)。 * 二叉树的遍历。 * 图形的深度优先(depth一first)搜索法。
阅读全文
原创 数据结构与算法

列表

* 链表是以节点的方式来存储,是链式存储 * 每个节点包含 data 域, next 域:指向下一个节点. * 如图:发现链表的各个节点不一定是连续存储. * 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定
阅读全文
队列
原创 数据结构与算法

队列

队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。 因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变,如图所示:
阅读全文
稀疏数组
原创 数据结构与算法

稀疏数组

1. 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 2. `记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模`
阅读全文
Loading...