栈
该考点在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%。
要搞懂这个知识点,我们首先要明白什么是线性表:
线性表:
线性表,又称线性结构,具有以下特征:
1.集合中必存在唯一的一个"第一个元素";(即数组元素a[0])
2.集合中必存在唯一的一个"最后的元素";(即数组元素a[9])
3.除最后元素之外,其它数据元素均有唯一的"后继";
4.除第一元素之外,其它数据元素均有唯一的"前驱"。
举个例子来说明这个概念,C语言中的数组便是线性表的一种,
在C语言中定义一个一维数组:
int a[10];
这个数组可以看做10个整型数据的集合,a[0]是第一个元素,a[9]是最后一个元素,且其他元素均有唯一的前驱和后继,如a[5]的前驱为a[4],后继为a[6]。
有了对于数组这种线性表的理解后,来看另一种线性表——栈。
栈的基本概念
栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈是按照"先进后出"或"后进先出"的原则组织数据的。
下面我们来看几个题目,:
1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
正确答案:B
【解析】:栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
A. 循环队列
B. 栈
C. 队列
D. 二叉树
正确答案:B
【解析】:栈是按先进后出的原则组织数据的;队列按先进先出的原则组织数据。