一、判断题

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. Spring(一):Spring概述及相关概念

    Spring简介 Spring主要作用是用来解耦,降低代码之间的耦合度.根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑. 主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低: 系统 ...

  2. 解决unbutu网络编程socket_tcp连接不上网络助手

    unbutu开放指定端口 开放端口8080 sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 保存设置 iptables-save 在终端中输入 ...

  3. java例题_24 逆向输入数字

    1 /*24 [程序 24 根据输入求输出] 2 题目:给一个不多于 5 位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 3 */ 4 5 /*分析 6 * 首先从键盘得到一个正整数,不 ...

  4. 冒泡排序(BubbleSort)

    介绍: 冒泡排序是一种最基础的交换排序(两两比较待排序的关键字,交换不满足次序要求的那对数,直到整个表都满足次序要求为止),工作方式如同碳酸饮料中的二氧化碳气泡最终会上浮到顶端一样,故名"冒 ...

  5. [2020年10月28日普级组]1408.MSWORLD

    1408. M S W O R L D 1408.MSWORLD 1408.MSWORLD 题目描述 Bessie , Farmer John 的优选牛,刚刚获得了一个牛科动物选美比赛的冠军!并得到了 ...

  6. 使用Gensim库对文本进行词袋、TF-IDF和n-gram方法向量化处理

    Gensim库简介 机器学习算法需要使用向量化后的数据进行预测,对于文本数据来说,因为算法执行的是关于矩形的数学运算,这意味着我们必须将字符串转换为向量.从数学的角度看,向量是具有大小和方向的几何对象 ...

  7. Distributed | Paxos

    自Paxos问世以来就持续垄断了分布式一致性算法,Paxos这个名词几乎等同于分布式一致性.Google的很多大型分布式系统都采用了Paxos算法来解决分布式一致性问题.在学习了Raft算法之后自然不 ...

  8. Dynamics CRM分享记录后出现关联记录被共享的问题

    Dynamics CRM的权限配置有许多的问题,其中分享功能也是未来解决标准功能分配的权限不满足需求而设计的.但是这个功能使用的时候也要注意,否则会出现其他记录被共享的问题导致数据泄露可能会对项目的安 ...

  9. 腾讯高级工程师带你玩转打包利器webpack

    随着前端领域飞速发展,webpack将前端不断出现的新模块.新资源.新需求,进行自动化整合.梳理.输出,极大提高了我们的工作效率,成为前端构建领域里最炙手可热的构建工具. 不少人webpack 的使用 ...

  10. 【剑指offer】10:矩形覆盖

    题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: ①方法一 对于这种题没有思路怎么办?可以先从最 ...