和栈类似,队列 (Queue) 也是一种线性表,只不过它的操作方式与栈不同。队列在尾部插入元素,在头部删除元素。
栈是限制插入和删除操作只能在表的末端进行的一种特殊的线性表。这时,表的末端被称为栈顶,相对地,表的另一端被称为栈底。
上一节我们介绍了线性表的顺序存储实现,这一节阐述线性表的链式存储实现。
上一节我们介绍了线性表的概念,这一节阐述线性表的顺序存储实现。 顺序表 顺序表最大的特点就是:元素在内存中存储的位置是连续的,因此只要已知首地址就可以通过首地址 + 偏移量访问到顺序表中的元素。 但也因为这个特点,顺序表的插入和删除操作会比较麻烦,因为插入和删除操作会导致后面所有的元素需要移动,而移动元素的时间复杂度是 O(n)。 由于高级语言中的数组就是顺序表的实现,因此顺序表的实现通常都非常简单。 一个顺序表 Header 可定义结构如下: 1type SeqList struct { 2 data []interface{} 3 length int 4} 其中 data 是一个数组,用来存储顺序表中的元素,length 是顺...
线性表是最简单,最常用,也是最需要熟练掌握的数据结构,没有之一。后续的数据结构都要在线性表基础上构建。