1.栈
同顺序表和链表一样,栈也是用来存储逻辑关系为"一对一"数据的线性存储结构.栈存储结构与之前学的线性存储结构有所差异:
(1)栈只能从表的一端存取数据,另一端是封闭的.
(2)在栈中,无论是存数还是取数据,都必须遵循"先进后出原则",即最先进栈的元素最后出栈.
通常,栈的开口端被称为栈顶;封口端被称为栈低.
进栈和出栈
基于栈结构的特点,在实际应用中,通常会对栈执行一下两种操作.
(1)向栈中添加元素.(进栈,入栈或压栈)
(2)从栈中取出元素.(出栈或弹栈)
栈的具体实现
栈是一种特殊的线性存储结构.
(1)采用顺序存储结构的特点实现栈存储结构称为顺序栈.
(2)采用链式存储结构实现栈存储结构被称为链栈
2.队列
和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构.与栈结构不同的是,对列的两端都"开口",数据只能从一端进另一端出.通常,进数据的一端为"队尾",出数据的一端为"队头",数据元素进队列的过程被称为入队,出队列的过程别称为"出队".
队列中数据的进出遵循"先进先出"原则.
栈和队列有些不同:栈是一端封口,特点是"先进后出";而队列的两端全开,一端进一端出,特点是"先进先出".
队列的存储结构的实现
(1)在顺序表的基础上实现的队列结构称为顺序队列.
(2)在链表基础上实现的队列结构被称为链队列.