我们在算法设计当中最常见的线性结构列表无非是一下几种:
1.数组:
数组应该是我最常用的一种。他的存储地址是连续的,就是当我们新开辟一个数组时,我们会给他分配一个连续的地址。由于他的地址是连续的,所以在我们知道他下标的时候,查找元素的速度非常快。
2.链表:
链表中的元素的位置不固定,链表中的每一个结点都一个头指针与尾指针,通过这样把链表中的元素连接起来,所以查找一个元素的时间与该元素所处的位置有关系。但是他在空间上面占有优势。
3.栈:
栈中的元素有一个特点,就是保持“ 先进先出”的原则。我们可以用一摞碟子做比喻,我们每次在加入新的碟子和拿走碟子的时候都在顶部做操作,他的应用也很广泛。
4.队列:
队列中,我们对元素的操作分别在队头与队尾。元素的插入在队尾,元素的删除在队头。在图的问题上面运用比较多。
5.堆:
堆是解决二叉树的一种常用的结构,是优先队列的一种优化结构。
这些都是非常基础又是非常重要的知识点,所以无论如何你必须要掌握。其余的废话就不多说了,后面我会针对每一种结构做一个详细的分享,希望大家多多支持,共同学习共同进步。
原文地址:http://blog.csdn.net/toplifeww/article/details/43016213