数据结构与算法
文章平均质量分 75
keqiwww
这个作者很懒,什么都没留下…
展开
-
关于数据结构的学习
关于数据结构的学习开始重新学习数据结构,选择了《大话数据结构》这本书。好好学习,常记录。在毕业找工作之前,打好基础。为什么会有数据结构这种东西存在,它是什么?早期的计算机是设计来解决数值计算的问题的,计算机解决问题时,是需要先从具体的问题中抽象出数据模型,再配以解决问题的算法来使用这种数据模型,最终达到解决问题的目的。后来,人们开始利用计算机来解决非数值的现实问题,而这些非数值问题之间的关系可谓错原创 2017-07-15 15:54:57 · 247 阅读 · 0 评论 -
数据结构之线性表
数据结构之线性表理解了数据结构其实就是讨论数据之间的关系,知道算法是什么,如何估算程序的时间复杂度,以及什么是抽象数据类型之后,就可以开始学习前人为我们总结出来的这些典型的数据结构了。现实生活中的排队就是一个典型的线性表的案例,线性表的抽象数据类型如下:ADT 线性表 (List)Data 线性表的数据对象集合用数学方法可以这样表示{a1,a2a3,...an,},其中除了第一个元素没有原创 2017-07-15 17:27:39 · 331 阅读 · 0 评论 -
堆栈
堆栈栈在计算机中的应用极其广泛,非常的重要。比如,递归就是依靠栈来实现的,每个浏览器都会提供一个回退之前网页的功能,这也是栈的应用。需要注意的是,栈是一种特殊的线性表,既然是线性表,就有顺序存储结构,和链式存储结构,后面都会给出代码实现。展示一下栈的抽象数据类型ADT 栈(stack)Data 一种特殊的线性表,只能在尾部进行添加和删除操作Operation InitStack()原创 2017-07-17 19:52:07 · 193 阅读 · 0 评论 -
数据结构之队列
数据结构之队列队列就太好理解了,相比没有人会没有排队的经历。队列同样是一种特殊的线性表,只是它只能从头部出去,从尾部进入。既然是线性表,同样也存在顺序表和链表,下面会介绍。由于队列的特殊性质,它的实现可以不采用顺序表那种插入删除时间复杂度为 O(n) 的算法,而是利用两个指针,构造一个循环顺序队列。这样,添加删除的时间复杂度都是 O(1) ,循环队列代码如下:原创 2017-07-19 19:03:27 · 233 阅读 · 0 评论