总结回顾
又到了总结回顾的时间。我们这一章讲的是栈和队列,它们都是特殊的线性表,只不过对插入和删除操作做了限制。
栈( stack )是限定仅在表尾进行插入和删除操作的线性表。
队列(queue是只允许在一端a韭行插入操作,而在另一端进行删除操作的线性表、
它们均可以用线性:表的顺序存储结构来实现,但都存在着顺序存储的一些弊端、
因此它们各自有各自的技巧来解决这个间题。讨于伐来说,如果是两个相同数据类型的栈,则一以用数组的两端作栈底的方法来让两个伐共享数据,这就可以最大化地利用数组的空间。
对于队列来说,为厂避免数组插入和删除时需要移动数据,于是就引人了循环队列,使得队失和队尾可以在数组中循环变化。解决了移动数据的时间损耗,使得本来插入和删除是O(n)的时间复杂度变成O(1)。
它们也都可以通过链式存储结构来实现,实现原则上与线性表基本扣同如下图所示、
又到了总结回顾的时间。我们这一章讲的是栈和队列,它们都是特殊的线性表,只不过对插入和删除操作做了限制。
栈( stack )是限定仅在表尾进行插入和删除操作的线性表。
队列(queue是只允许在一端a韭行插入操作,而在另一端进行删除操作的线性表、
它们均可以用线性:表的顺序存储结构来实现,但都存在着顺序存储的一些弊端、
因此它们各自有各自的技巧来解决这个间题。讨于伐来说,如果是两个相同数据类型的栈,则一以用数组的两端作栈底的方法来让两个伐共享数据,这就可以最大化地利用数组的空间。
对于队列来说,为厂避免数组插入和删除时需要移动数据,于是就引人了循环队列,使得队失和队尾可以在数组中循环变化。解决了移动数据的时间损耗,使得本来插入和删除是O(n)的时间复杂度变成O(1)。
它们也都可以通过链式存储结构来实现,实现原则上与线性表基本扣同如下图所示、