尽管银行科技岗考查内容众多,但万变不离其宗,基础的计算机专业知识少不了,当然还有其他一些科目:计算机组成原理、计算机网络、数据库、操作系统、程序设计语言、软件工程、数据结构、信息新技术等。就拿数据结构来说,重点较多,比如二叉树的构成、哈希查找效率、二叉树的遍历算法、多线程的栈和队列、软件需求、单链表查找算法、栈的进出顺序、先进先出、线性结构、队列、串、数据的存储结构、栈和队列、深度为5的满二叉树、后序遍历序列是dabec,中序遍历序列是debac、进栈序列、快速排序算法等等,今天就给大家介绍一下其中的重点内容——栈。
一、具体内容看一看
1.定义
栈是一种只能在一端进行插入或删除操作的线性表。栈中的数据元素是线性关系。
栈顶:允许进行插入或删除操作的一端。
栈底:不允许进行插入和删除操作,固定不变的一端。
入栈:栈的插入操作。
出栈:栈的删除操作。
2.特点
先进后出(FirstInLastOut,简称FILO)、后进先出(LastInFirstOut,简称LIFO)。
3.存储结构
顺序栈:使用顺序存储结构存储栈。
链式栈:使用链式存储结构存储栈。
4.栈的常见操作
InitStack(S):构造一个空栈S。
DestroyStack(S):栈S被销毁。
ClearStack(S):栈S清为空栈。
StackEmpty(S):若栈S为空栈,则返回TRUE,否则FALSE。
StackLength(S):返回S的元素个数,即栈的长度。
GetTop(S,e):用e返回S的栈顶元素。
Push(S,e):插入元素e为新的栈顶元素。
Pop(S,e):删除S的栈顶元素,并用e保存返回其值。
5.栈的应用
数值转换、括号的检验匹配、行编辑程序、表达式求值。
二、实践出真知
下面,我们就以几道代表性题目来看一看栈的应用
例1.一个栈的入栈序列是A,B,C,D,E,则栈的不可能输出序列是()。
A.EDCBAB.DECBA
C.DCEABD.ABCDE
分析思路:首先站的工作原理是栈先进后出,后进先出。A选项是abcde先入栈,然后依次出栈,正好是edcba。B选项是abcd先依次入栈,然后d出栈,e再入栈,e出栈。选项C是错误的,因为a先于b入栈,不可能a先出栈然后b再出栈。选项D是a入栈,然后a出栈;b再入栈,b出栈,依此类推。
例2.输入序列为ABC,可以变为CBA时,经过的栈操作为()。
A.push,pop,push,pop,push,popB.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,popD.push,pop,push,push,pop,pop
分析思路:push是入栈,pop是出栈,入栈后为A、B、C,栈的特点是后进先出,ABC依次入栈,然后依次出栈,所以出栈后变为C、B、A。故B选项正确。
栈是我们数据结构当中非常典型的一个知识点,希望此次的分享可以帮助大家理解和掌握其中的要点和考查方式!