PTA 第三章 栈与队列
一、判断题
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 第三章 栈与队列的更多相关文章
- C语言数据结构——第三章 栈和队列
三.栈和队列 栈和队列是两种重要的线性结构.从数据结构的角度来看,栈和队列也是线性表,它的特殊性在于栈和队列的基本操作是线性表操作的子集,它们的操作相对于线性表来说是受到限制的,因此,可以称其为限定性 ...
- 数据结构(C语言版)---第三章栈和队列 3.4.2 队列的链式表示和实现(循环队列)
这个是循环队列的实现,至于串及数组这两章,等有空再看,下面将学习树. 源码如下: #include <stdio.h> #include <stdlib.h> #define ...
- 数据结构(c语言版,严蔚敏)第3章栈和队列
第3章栈和队列
- 数据结构(C语言版)-第3章 栈和队列
3.1 栈和队列的定义和特点3.2 案例引入3.3 栈的表示和操作的实现3.4 栈与递归3.5 队列的的表示和操作的实现3.6 案例分析与实现 基本操作有入栈.出栈.读栈顶元素值.建栈.判断栈满.栈空 ...
- 《程序员代码面试指南》第一章 栈和队列 构造数组的MaxTree
题目 给出一个无重复元素的数组,构造此数组的MaxTree, java代码 /** * @Description: 构造数组的MaxTree * @Author: lizhouwei * @Creat ...
- 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈
题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 ...
- 第三章· Redis消息队列
一.生产消费模型 二.Redis发布消息的两种模式
- 第四章 栈与队列(d)队列接口与实现
- 第四章 栈与队列(c5)栈应用:逆波兰表达式
随机推荐
- WinForm的Socket实现简单的聊天室 IM
1:什么是Socket 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象. 一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制. 从 ...
- Cookie与Session的安全性
说到cookie与session我们首先要说一下为什么要引入这两个东西,这两个多西到底是干什么的 起源 由于HTTP协议使无状态的: 每一次请求都是新的请求,不会记得之前通信的状态 客户端与服务端的一 ...
- CobaltStrike 和 Metasploit 联动
出品|MS08067实验室(www.ms08067.com) 本文作者:掉到鱼缸里的猫(Ms08067内网安全小组成员) 个人觉得CobaltStrike图形化的界面和丰富的功能,是一个超强的后渗透框 ...
- PTA 单链表分段逆转
6-9 单链表分段逆转 (25 分) 给定一个带头结点的单链表和一个整数K,要求你将链表中的每K个结点做一次逆转.例如给定单链表 1→2→3→4→5→6 和 K=3,你需要将链表改造成 3→2→1 ...
- JPEG解码——(6)IDCT逆离散余弦变换
本篇是该系列的第六篇,承接上篇IZigZag变换,介绍接下来的一个步骤--逆离散余弦变换,即逆零偏置前的一个步骤. 该步骤比较偏理论,其业务是对IZigZag变换后的数据,再进一步的处理,使其恢复DC ...
- (十四--十五)数据库查询优化Part I
(十四--十五)数据库查询优化Part I 如果理解的有问题.欢迎大家指出.这也是我在看课记得笔记..可能会有很多问题 查询优化的重要性 请记住用户只会告诉DMBS他们想要什么样的结果,而不会告诉他们 ...
- BST(二叉搜索树)的基本操作
BST(二叉搜索树) 首先,我们定义树的数据结构如下: public class TreeNode { int val; TreeNode left; TreeNode right; public T ...
- [状压DP]关灯问题II
关 灯 问 题 I I 关灯问题II 关灯问题II 题目描述 现有n盏灯,以及 m m m个按钮.每个按钮可以同时控制这 n n n盏灯--按下了第 i i i个按钮,对于所有的灯都有一个效果.按下i ...
- 用Python爬取网易云音乐热评
用Python爬取网易云音乐热评 本文旨在记录Python爬虫实例:网易云热评下载 由于是从零开始,本文内容借鉴于各种网络资源,如有侵权请告知作者. 要看懂本文,需要具备一点点网络相关知识.不过没有关 ...
- OO_Unit2_Summary
经过三周的自己电梯瞎设计,下次坐电梯想我想的可能就不是如何优化调度算法,而是千万别把自己死锁在电梯里了(手动狗头) 一.设计策略 1. 需求分析: 作业一:单部多线程可稍带电梯,一部电梯,固定楼层,不 ...