特殊线性表——栈、队列和串

特殊线性表——栈、队列和串

ID:8845613

大小:155.50 KB

页数:5页

时间:2018-04-09

特殊线性表——栈、队列和串_第1页
特殊线性表——栈、队列和串_第2页
特殊线性表——栈、队列和串_第3页
特殊线性表——栈、队列和串_第4页
特殊线性表——栈、队列和串_第5页
资源描述:

《特殊线性表——栈、队列和串》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第3章特殊线性表——栈、队列和串1.填空⑴设有一个空栈,栈顶指针为1000H,现有输入序列为1、2、3、4、5,经过push,push,pop,push,pop,push,push后,输出序列是(),栈顶指针为()。【解答】23,1003H⑵栈通常采用的两种存储结构是();其判定栈空的条件分别是(),判定栈满的条件分别是()。【解答】顺序存储结构和链接存储结构(或顺序栈和链栈),栈顶指针top=-1和top=NULL,栈顶指针top等于数组的长度和内存无可用空间⑶()可作为实现递归函数调用的一种数据结构。【解答】栈【分析】递归函数的调用和返回正好符合后进先出性。⑷表达式a*(b+c)-d的后缀

2、表达式是()。【解答】abc+*d-【分析】将中缀表达式变为后缀表达式有一个技巧:将操作数依次写下来,再将算符插在它的两个操作数的后面。⑸栈和队列是两种特殊的线性表,栈的操作特性是(),队列的操作特性是(),栈和队列的主要区别在于()。【解答】后进先出,先进先出,对插入和删除操作限定的位置不同⑹循环队列的引入是为了克服()。【解答】假溢出⑺数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为()。【解答】(rear-front+n)%n【分析】也可以是(rear-front)%n,但rear-front的结果可能是负整数,而对

3、一个负整数求模,其结果在不同的编译器环境下可能会有所不同。⑻用循环链表表示的队列长度为n,若只设头指针,则出队和入队的时间复杂度分别是()和()。【解答】O(1),O(n)【分析】在带头指针的循环链表中,出队即是删除开始结点,这只需修改相应指针;入队即是在终端结点的后面插入一个结点,这需要从头指针开始查找终端结点的地址。⑼串是一种特殊的线性表,其特殊性体现在()。【解答】数据元素的类型是一个字符⑽两个串相等的充分必要条件是()。【解答】长度相同且对应位置的字符相等【分析】例如"abc"≠"abc","abc"≠"bca"。2.选择题⑴若一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素

4、是n,则第i个输出元素是()。A不确定Bn-iCn-i-1Dn-i+1【解答】D【分析】此时,输出序列一定是输入序列的逆序。⑵设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是(  )。A6    B4    C3    D2【解答】C【分析】由于队列具有先进先出性,所以,此题中队列形同虚设,即出栈的顺序也是e2、e4、e3、e6、e5、e1。⑶一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是()。A54321B45321C43512D123

5、45【解答】C【分析】此题有一个技巧:在输出序列中任意元素后面不能出现比该元素小并且是升序(指的是元素的序号)的两个元素。⑷设计一个判别表达式中左右括号是否配对的算法,采用()数据结构最佳A顺序表B栈C队列D链表【解答】B【分析】每个右括号与它前面的最后一个没有匹配的左括号配对,因此具有后进先出性。⑸在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个()结构。A栈B队列C数组D线性表【解答】B【分析】先进入打印缓冲区的文件先被打印,因此具有先进先出性。⑹一个队列的入队顺序是1,2,3,4,则队列的输出顺序是()。A4321B1234C1432D3241【解答

6、】B【分析】队列的入队顺序和出队顺序总是一致的。⑺栈和队列的主要区别在于()。A它们的逻辑结构不一样B它们的存储结构不一样C所包含的运算不一样D插入、删除运算的限定不一样【解答】D【分析】栈和队列的逻辑结构都是线性的,都有顺序存储和链接存储,有可能包含的运算不一样,但不是主要区别,任何数据结构在针对具体问题时包含的运算都可能不同。⑻设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。AS1的栈底位置为0,S2的栈底位置为n-1BS1的栈底位置为0,S2的栈底位置为n/2CS1的栈底位置为0,S2的栈底位置为nDS

7、1的栈底位置为0,S2的栈底位置为1【解答】A【分析】两栈共享空间首先两个栈是相向增长的,栈底应该分别指向两个栈中的第一个元素的位置,并注意C++中的数组下标是从0开始的。⑼设有两个串p和q,求q在p中首次出现的位置的运算称作()。A连接B模式匹配C求子串D求串长【解答】B3.判断题⑴有n个元素依次进栈,则出栈序列有(n-1)/2种。【解答】错。应该有种。⑵栈可以作为实现过程调用的一种数据结构。【

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。