一、判断题

1.若一个栈的输入序列为1,2,3,……,N,输出序列的第一个元素为i,则第j个输出的元素是j-i-1    (×)解析:应该是不确定的,不能保证数字出栈后不会再入栈

2.所谓“循环队列”是指用单向循环链表或者循环数组表示的队列    (×)解析:循环队列指的是后者,用数组表示的队列,利用求余数运算使得头尾相接

3.在对不带头结点的链队列做出队操作时,不会改变头指针的值    (×)解析:会改变头指针的值,变成相连指针的值

4.不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”的情况    (√)解析:因为存储空间是有限的

5.队列和栈都是运算受限的线性表,只允许在表的两端进行运算    (×)解析:前半句对,后半句中栈只能在一段进行操作,只有队列才是在两端进行操作

6.栈和队列的存储方式,既可以是顺序方式,也可以是链式方式    (√)

7.循环队列也存在着空间溢出问题    (√)解析:循环队列的存储空间也是有限的

8.循环队列执行出队操作时会引起大量元素的移动    (×)

9.栈是插入和删除只能在一端进行的线性表;队列是插入在一端进行,删除在另一端进行的线性表    (√)

10.在n个元素连续进栈以后,他们的出栈顺序和进栈顺序一定正好相反    (√)

11.环形队列中有多少个元素可以根据队首指针和队尾指针的值来计算    (√)

12.栈和队列的插入和删除操作特殊,所以,栈和队列是非线性结构    (×)

13.序列{1,2,3,4,5}依次入栈,则不可能得到{3,4,1,2,5}的出栈序列    (√)

14.队列中允许插入的一端叫队头,允许删除的一端叫队尾     (×)解析:正好相反,允许插入的一端叫队尾,允许删除的一端叫队头,前头后尾

二、单选题

2-1.若用大小为6的数组来实现循环队列,且当前front和rear的值分别为0和4。当从队列中删除两个元素,再加入两个两个元素后,front和rear的值分别为多少:

A.2和0

B.2和2

C.2和4

D.2和6

解析:初始化创建空队列时,令front=rear=0,每当插入新的队列尾元素时,rear增1,每当删除一个队列首元素时,front增1。则删除一个,front++,增加一个rear++

2-2.如果循环队列用大小为m的数组表示,且用队头指针front和队列元素个数size代替一般循环队列中的front和rear指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为:

A.m-1

B.m

C.m+1

D.不能确定

2-3.以下数据结构中,()是非线性数据结构。

A.树

B.字符串

C.队列

D.栈

2-4.设栈S和队列Q的初始状态均为空,元素{1,2,3,4,5,6,7}依次进入栈S。若每个元素出栈后立即进入队列Q,且七个元素出队的顺序是{2,5,6,4,7,3,1},则栈S的容量至少是:

A.1

B.2

C.3

D.4

2-5.线性表、堆栈、队列的主要区别是什么?

A.线性表用指针,堆栈和队列用数组

B.堆栈和队列都是插入、删除收到约束的线性表

C.线性表和队列都可以用循环链表实现,但堆栈不能

D.堆栈和队列都不是线性结构,而线性表是

解析:A中它们都可以用指针和数组,C中线性表不可以用循环列表实现,D中线性表是线性结构

PTA 第三章 栈与队列的更多相关文章

  1. C语言数据结构——第三章 栈和队列

    三.栈和队列 栈和队列是两种重要的线性结构.从数据结构的角度来看,栈和队列也是线性表,它的特殊性在于栈和队列的基本操作是线性表操作的子集,它们的操作相对于线性表来说是受到限制的,因此,可以称其为限定性 ...

  2. 数据结构(C语言版)---第三章栈和队列 3.4.2 队列的链式表示和实现(循环队列)

    这个是循环队列的实现,至于串及数组这两章,等有空再看,下面将学习树. 源码如下: #include <stdio.h> #include <stdlib.h> #define ...

  3. 数据结构(c语言版,严蔚敏)第3章栈和队列

    第3章栈和队列

  4. 数据结构(C语言版)-第3章 栈和队列

    3.1 栈和队列的定义和特点3.2 案例引入3.3 栈的表示和操作的实现3.4 栈与递归3.5 队列的的表示和操作的实现3.6 案例分析与实现 基本操作有入栈.出栈.读栈顶元素值.建栈.判断栈满.栈空 ...

  5. 《程序员代码面试指南》第一章 栈和队列 构造数组的MaxTree

    题目 给出一个无重复元素的数组,构造此数组的MaxTree, java代码 /** * @Description: 构造数组的MaxTree * @Author: lizhouwei * @Creat ...

  6. 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈

    题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 ...

  7. 第三章· Redis消息队列

    一.生产消费模型 二.Redis发布消息的两种模式

  8. 第四章 栈与队列(d)队列接口与实现

  9. 第四章 栈与队列(c5)栈应用:逆波兰表达式

随机推荐

  1. 【博弈论】组合游戏及SG函数浅析

    目录 预备知识 普通的Nim游戏 SG函数 预备知识 公平组合游戏(ICG) 若一个游戏满足: 由两名玩家交替行动: 游戏中任意时刻,合法操作集合只取决于这个局面本身: 若轮到某位选手时,若该选手无合 ...

  2. ARFoundation - 实现物体旋转, 平移,缩放

    ARFoundation - 实现物体旋转, 平移,缩放 本文目的是为了确定在移动端怎样通过单指滑动实现物体的旋转,双指实现平移和缩放. 前提知识: ARFoundation - touch poin ...

  3. ( ) 与 { } 差在哪?-- Shell十三问<第七问>

    ( ) 与 { } 差在哪?-- Shell十三问<第七问> 先说一下,为何要用 ( ) 或 { } 好了. 许多时候,我们在 shell 操作上,需要在一定条件下一次执行多个命令,也就是 ...

  4. 【图像处理】OpenCV+Python图像处理入门教程(七)图像形态学操作

    图像形态学主要从图像内提取分量信息,该分量信息通常对表达图像的特征具有重要意义.例如,在车牌号码识别中,能够使用形态学计算其重要特征信息,在进行识别时,只需对这些特征信息运算即可.图像形态学在目标视觉 ...

  5. 【C/C++】memset方法的误区

    目录 一.前言 二.函数作用 三.效率对比 四.误区总结 1.按字节设置 2.设置的值只有最低字节有效 3.堆内存不可直接 sizeof 取首地址 4.传参数组不可直接 sizeof 取首地址 一.前 ...

  6. SpringBoot(九篇)

    (一) SpringBootCLI安装 (二)SpringBoot开发第一个应用 (三)SpringBoot pom.xml配置文件详解 (四)SpringBoot起步依赖Starters详解 (五) ...

  7. ternux的ssh和ftp

    ssh的连接 pkg install ssh ssh -p 8022 username@hostname_ip ftp的创建 安装python 升级pip python -m pip install ...

  8. 华为分析+App Linking:一站式解决拉新、留存、促活难

    移动互联网时代,用户注意力稀缺,"如何让用户一键直达APP特定页面"越来越受到产品和运营同学的关注. 比如在各个渠道投放了APP安装广告,希望新用户下载APP首次打开时直接进入活动 ...

  9. NOI2020游记

    我今年高一,这是我第一年作为正选参加NOI. 去年NOI没写游记,结果前两天想要复盘NOI2019的时候发现只能回想起一些模糊的记忆了.为了防止明年再遇到这种情况(其实我更希望没有明年),就有了这篇游 ...

  10. 由电脑专卖系统引发的Java设计模式:访问者模式

    目录 定义 意图 解决问题 何时使用 优缺点 结构 电脑专卖系统 定义 访问者模式是对象的行为型模式,它的目的是封装一些施加于某些数据结构元素之上的操作,一旦这些操作需要修改的话,接收这个操作的数据结 ...