栈和队列

从数据结构的角度看栈和队列也是属于线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,他们是操作受限的线性表,因此,可称为限定性的数据结构。
但,从数据类型角度看,他们是和线性表大不相同的两类重要的抽象数据类型。


栈(Stack)是先进后出原则,表尾进行插入或删除,因此,表尾端称为栈顶(top),表头端称为栈底(bottom),不含元素的空表称为空栈。
栈的基本操作除了在栈顶进行插入或删除外,还有栈的初始化、判空及取栈顶元素等。

顺序栈和链式栈
顺序栈指在内存中顺序存储元素数据,且要求初始即确定使用内存的大小,这样对内存的使用效率不高并且无法避免栈满溢出的问题;链式栈是采用了链表来实现栈,链式表中的元素不是连续的,可以动态的申请内存。

 

队列
和栈相反,队列是一种先进先出原则,它只允许在表的一端进行插入,而在另一端删除元素,在允许插入的一端叫队尾,允许删除的一端叫队头。

 

双端队列
双端队列是限定出入和删除操作在表的两端进行的一种限定性数据结构

 

原文地址:https://www.cnblogs.com/itstone/p/10477335.html