数据结构练习题-3栈和队列

2023-11-02

选择题

(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在(  )种情况。

A5,4,3,2,1   B.2,1,5,4,3    C43125    D2,3,5,4,1

答案:C

解释:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。

(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为(  )。

A.i               B.n-i               C.n-i+1            D.不确定

答案:C

解释:栈是后进先出的线性表,一个栈的入栈序列是123,…,n,而输出序列的第一个元素为n,说明123,…,n一次性全部进栈,再进行输出,所以p1=np2=n-1,…,pi=n-i+1

(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为(  )。

Ar-f             B.(n+f-r)%n       C.n+r-f           D.(n+r-f)%n

答案:D

解释:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。

(4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作(  )。

Ax=top->data;top=top->link           B.top=top->link;x=top->link;   

C.x=top;top=top->link;                  D.x=top->link;

答案:A

解释:x=top->data将结点的值保存到x中,top=top->link栈顶指针指向栈顶下一结点,即摘除栈顶结点。

(5)设有一个递归算法如下

        int fact(int n) {  //n大于等于0

             if(n<=0) return 1;

             else return n*fact(n-1);        }

则计算fact(n)需要调用该函数的次数为(  )。 

A n+1              B n-1              C n                  D n+2

答案:A

解释:特殊值法。设n=0,易知仅调用一次fact(n)函数,故选A

(6)栈在 (  )中有所应用。

A递归调用       B函数调用      C表达式求值        D前三个选项都有

答案:D

解释:递归调用、函数调用、表达式求值均用到了栈的后进先出性质。

(7)为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是(  )。

A队列           B栈            C 线性表           D有序表

答案:A

解释:解决缓冲区问题应利用一种先进先出的线性表,而队列正是一种先进先出的线性表。

(8)设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是( )。

A2              B            C4                D 6

答案:B

解释:元素出队的序列是e2e4e3e6e5e1,可知元素入队的序列是e2e4e3e6e5e1,即元素出栈的序列也是e2e4e3e6e5e1,而元素e1e2e3e4e5e6依次进入栈,易知栈S中最多同时存在3个元素,故栈S的容量至少为3

(9)若一个栈以向量V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是(    )。

A.top++; V[top]=x;                 B.V[top]=x; top++;

C.top--; V[top]=x;                 D.V[top]=x; top--;

答案:C

解释:初始栈顶指针topn+1,说明元素从数组向量的高端地址进栈,又因为元素存储在向量空间V[1..n]中,所以进栈时top指针先下移变为n,之后将元素x存储在V[n]

(10)设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。

A.线性表的顺序存储结构              B队列    

C. 线性表的链式存储结构              D.

答案:D

解释:利用栈的后进先出原则。

(11)用链接方式存储的队列,在进行删除运算时( )。

A. 仅修改头指针                      B. 仅修改尾指针

C. 头、尾指针都要修改                D. 头、尾指针可能都要修改

答案:D

解释:一般情况下只修改头指针,但是,当删除的是队列中最后一个元素时,队尾指针也丢失了,因此需对队尾指针重新赋值。

(12)循环队列存储在数组A[0..m]中,则入队时的操作为( )。

A. rear=rear+1                       B. rear=(rear+1)%(m-1)

  C. rear=(rear+1)%m                   D. rear=(rear+1)%(m+1)

答案:D

解释:数组A[0..m]中共含有m+1个元素,故在求模运算时应除以m+1。

(13)最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是( )。

  A. (rear+1)%n==front                  B. rear==front                                                          

C.rear+1==front                      D. (rear-l)%n==front

答案:B

解释:最大容量为n的循环队列,队满条件是(rear+1)%n==front,队空条件是rear==front。

(14)栈和队列的共同点是( )。

A. 都是先进先出                       B. 都是先进后出  

C. 只允许在端点处插入和删除元素       D. 没有共同点

答案:C

解释:栈只允许在栈顶处进行插入和删除元素,队列只允许在队尾插入元素和在队头删除元素。

(15)一个递归算法必须包括( )。

A. 递归部分                           B. 终止条件和递归部分

C. 迭代部分                           D. 终止条件和迭代部分

答案:B

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构练习题-3栈和队列 的相关文章

  • PDH光端机技术与应用:稳定可靠的数据传输解决方案

    在当今数字化 网络化日益加速的世界中 数据传输的稳定性和可靠性至关重要 PDH Plesiochronous Digital Hierarchy 准同步数字系列 光端机技术 作为早期的数字传输系统之一 虽然已被更先进的SDH Synchro
  • 浅谈归并排序:合并 K 个升序链表的归并解法

    在面试中遇到了这道题 如何实现多个升序链表的合并 这是 LeetCode 上的一道原题 题目具体如下 用归并实现合并 K 个升序链表 LeetCode 23 合并K个升序链表 给你一个链表数组 每个链表都已经按升序排列 请你将所有链表合并到
  • 广告竞价策略:激发广告变现潜能的关键

    在数字化时代 广告已经成为企业推广品牌 产品和服务的关键手段之一 为了最大程度地发挥广告的效果 广告竞价策略成为广告主和数字营销专业人士关注的焦点 通过巧妙运用竞价策略 广告主可以在激烈的市场竞争中脱颖而出 实现广告变现的潜能 admaoy
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 带头双向循环链表基础

    带头双向循环链表基础 销毁 销毁 void ListDestory ListNode phead void ListDestory ListNode phead assert phead ListNode cur phead gt next
  • 如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

    文章目录 1 前言 2 Imagewheel网站搭建 2 1 Imagewheel下载和安装 2 2 Imagewheel网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全
  • 如何以最小的开销实现简单的无服务器 p2p 浏览器到浏览器消息传递?

    我正在尝试创建一些简单游戏的基本实现 井字游戏是起始项目 这些游戏可以通过互联网玩 而不需要中央服务器 该页面甚至不需要托管 可以在计算机上本地运行 也可以托管在 Web 服务器上 托管游戏时 页面会通知主机他的 IP 地址 然后可以通过任
  • 通过多点连接发送和接收邀请

    我知道这个问题之前已经被问过 但我只是想知道为什么它在我的特定情况下不起作用 我正在尝试从一个视图控制器的多点连接发送邀请 并在另一个视图控制器上接收它 我的发送代码是 self invitePeer selectedPeerID toSe
  • 如何在两个设备(android,iphone)之间传输“数据”?

    如何在两个设备之间传输数据 我想在不同平台 android iphone 之间传输数据 主要是图像文件 是否可以使用 p2p 或者我应该使用客户端服务器 任何帮助将不胜感激 你看过吗高通的 AllJoyn 库 https developer
  • 种子中的 DHT

    我正在编写一个 P2P 实现 我希望将其去中心化 然而我在掌握如何做时遇到了一些困难DHT https en wikipedia org wiki Distributed hash table在像 BitTorrent 这样的协议中是有效的
  • 结束两个对等方之间的 WebRTC 视频通话

    我已经使用以下命令在两个同伴之间建立了视频聊天WebRTC 我想让一个对等方结束聊天 并让另一个对等方知道聊天已结束 聊天结束后 需要为双方执行一些代码 这PeerConnection对象有一个removeStream 应该触发的方法onr
  • 使用 STUN 打孔

    我目前正在尝试通过 Internet 发送 UDP 消息 并且必须为端点 A 和 B 都位于 NAT 后面 设置防火墙 为此 我想使用 STUN 服务器进行打孔 当 A 创建对 STUN 服务器的请求 例如 私有 85 1 1 12 600

随机推荐

  • 【Python】初识类与对象

    面向对象的编程思想 OOP 面向对象的编程思想与之前面向过程的编程思想不同 面向对象的编程思想着重强调要细分职责和工作 例如有加减乘除四个运算方法 我们需要处理的数据有实数和虚数 我们需要将这两种数据独立进行运算 那么此时我们就将这些四则运
  • 微信小程序服务器响应404,解决小程序wx.request无法触发fail回调。

    今天在写一个需求如下 1 用户发送token到服务器认证 2 服务器返回banner图片数据 3 如果失败 就显示默认占位图 按照我用jq写ajax的理解 那就是error 时 显示占位图 在wx小程序里是fail 方法 我在服务器上关闭了
  • 七、vue项目使用高德地图自定义marker图标

    效果如图 主要代码 data return marker markers position 118 791545 31 9624 id 1 icon require assets xc ren png position 118 798832
  • 公司规定所有接口都用POST请求

    前言 经研发部商议 后续接口都统一使用post请求了 不过这个主要也和我们的具体业务有关 所有接口的参数都做了加 解密 加 验签处理 包括查询 下面是公司架构分享的一篇文章 觉得挺有意思 转载一下 转载内容 小二刚去一家公司实习俩月 就收到
  • Anaconda创建环境、删除环境、激活环境、退出环境

    学习前端的可以掘金 新博客地址 安装scipy conda install scipy conda会从从远程搜索scipy的相关信息和依赖项目 对于python 3 4 conda会同时安装numpy和mkl 运算加速的库 查看已经安装的p
  • Visual Studio 硬盘版制作教程 转

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 以下是官方博客例子浅析 先加入相关的
  • 电子英汉词典附带背单词功能C语言程序设计,附录完整代码

    电子英汉词典附带背单词功能C语言程序设计 附录完整代码 系统需求分析 本程模拟面对英语单词有背诵和查询需求的用户 用户在实际学习过程中可能会遇到学习单词时实体单词书体积大不方便的情况 这时就可以使用便携PC设备来运行此程序方便学习 在本程序
  • ERNIE3.0多分类任务应用详细教程代码

    小样本学习简介 二分类 多分类任务在商品分类 网页分类 新闻分类 医疗文本分类等现实场景中有着广泛应用 现有的主流解决方案是在大规模预训练语言模型进行微调 因为下游任务和预训练任务训练目标不同 想要取得较好的分类效果往往需要大量标注数据 因
  • java监听窗口关闭事件_JavaFX 监听窗口关闭事件实例详解

    1 写在前面 在JavaFX的程序开发的时候 在使用多线程的时候 默认情况下在程序退出的时候 新开的线程依然在后台运行 在这种情况下 可以监听窗口关闭事件 在里面关闭子线程 2 具体实现的样例 package sample import j
  • 教程:将数据从Excel导出到C#中的数据表

    MS Excel电子表格被广泛用于保留小型 中型或大型数据 在各种情况下 电子表格都充当存储应用程序数据的数据库 在这种情况下 可能需要从Web或桌面应用程序中读取存储在Excel文件中的数据 对于这种情况 本文介绍如何将数据从Excel工
  • Ext4文件系统介绍 - 理论篇

    Overview ext4文件系统分割成多个block groups 为了解决碎片化问题 block allocator尽量将一个文件的block放在一个group中 block groups的size通过sb s blocks per g
  • Vue父子组件通信之子组件主动获取父组件的数据和方法(三)

    子组件主动获取父组件的数据和方法 实现方式 this parent 属性 this parent 方法 代码示例 父组件
  • 简单教会你如何使用视频ID获取视频详情

    前往注册开通测试 onebound douyin item get video 公共参数 名称 类型 必须 描述 key String 是 调用key 必须以GET方式拼接在URL中 secret String 是 调用密钥 api nam
  • 基于Yolov5的交通标志检测识别设计

    项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程 Tensorflow 并且最后实现了一个pyqt5的GUI界面 并且还制作了一个简单的Falsk前端网页实现了前后端的一个简单
  • 《网页设计基础——HTML常用标签》

    网页设计基础 HTML常用标签 一 HTML网页框架 格式 二 块级标签 1 标题标签 h1 一级标题 h1 h2 二级标题 h2 h3 三级标题 h3 h4 四级标题 h5 五级标题 h6 六级标题 h6 h5 h4
  • java random.nextint_java Random.nextInt()方法的具体使用

    lic int nextInt int n 该方法的作用是生成一个随机的int值 该值介于 0 n 的区间 也就是0到n之间的随机int值 包含0而不包含n 直接上代码 package org xiaowu random demo impo
  • Android SDK AndroidStudio 国内可用的镜像/代理地址

    http www androiddevtools cn 一站式下载地址 齐全 Android SDK在线更新镜像服务器 1 中国科学院开源协会镜像站地址 IPV4 IPV6 mirrors opencas cn 端口 80 IPV4 IPV
  • Linux QQ 一个命令搞定它

    一个命令就能在linux上用QQ了 在debian下 apt get install gaim 基本上全部聊天软件都能用了 QQ MSN ICQ yahoo通 等等 你如果是用其它linux的话 那就麻烦得多了 要到以下地址找gaim和它的
  • C 标准库 - 《signal.h》

    原文链接 https www runoob com cprogramming c standard library signal h html 简介 signal h 头文件定义了一个变量类型 sig atomic t 两个函数调用和一些宏
  • 数据结构练习题-3栈和队列

    选择题 1 若让元素1 2 3 4 5依次进栈 则出栈次序不可能出现在 种情况 A 5 4 3 2 1 B 2 1 5 4 3 C 4 3 1 2 5 D 2 3 5 4 1 答案 C 解释 栈是后进先出的线性表 不难发现C选项中元素1比元