408数据结构:栈、队列和数组选择题做题笔记

408数据结构

第一章 绪论
第二章 线性表
绪论、线性表选择题做题笔记
第三章 栈、队列和数组
栈、队列和数组选择题做题笔记


文章目录

  • 408数据结构
    • 前言
  • 一、队列
  • 二、栈和队列的应用
    • 总结


前言

本篇文章为针对王道25数据结构课后习题的栈、队列和数组的做题笔记,后续做其他数据结构练习会进行更新!


一、队列

11、与顺序队列相比,链式队列()
A.优点是队列的长度不受限制
B.优点是进队和出队的效率更高
C.缺点是不能进行顺序访问
D.缺点是不能根据队首指针和队尾指针计算队列的长度

  • 正确答案:D
  • 解析
    A.即使链式队列采用的是动态分配,但长度也收内存空间的限制,无法无限制增长
    B.顺序队列和链式队列的进出队时间复杂度均为O(1)
    C.顺序队列和链式队列均可进行顺序访问
    D.顺序队列可以通过对头指针和队尾指针计算队列中的元素个数,而链式队列不能
  • 疑惑
    链式队列知道对头指针和队尾指针,不能直接遍历得到元素个数吗
  • 疑惑解答
    题目应该是说要根据两个指针直接得到

最适合用作队列的链表是___________
A.带队首指针和队尾指针的循环单链表
B.带队首指针和队尾指针的非循环单链表
C.只带队首指针的非循环单链表
D.只带队首指针的循环单链表

  • 答案:B.带队首指针和队尾指针的非循环单链表
  • 分析
    (1)顺序还是链式
    答:包链式的啊
    (2)带什么指针(头/尾/头和尾)
    (3)要不要循环
    答:队列的主要操作是入队和出队,入队时,如果没有队尾指针则得遍历,因此需要队尾指针,因此排除CD
    ;出队时,只需要让队首指针指向下一个即可,不需要循环,因此选B
    (4)单链表还是双链表
    答:题目不涉及此项的讨论

在用单链表实现队列时,对头应设在链表的____位置
A.链头
B.链尾
C.链中

  • 答案:A.链头
  • 分析:队列指针是对头指向队尾的,和链表一样(链头指向链尾)

用链式存储方式的队列进行删除操作时需要_______–
A.仅修改头指针
B.仅修改尾指针
C.头尾指针都要修改
D.头尾指针可能都要修改

  • 答案:D
  • 分析:当不止一个元素时仅修改头指针,当只有一个元素时两个都要修改

假设输入序列为1,2,3,4,5,利用两个队列纪念性出入队操作,不可能的输出序列为________-
A.1,2,3,4,5
B.5,2,3,4,1
C.1,3,2,4,5
D.4,1,5,2,3

  • 答案:B
  • 分析
    题目是指:1,2,3,4,5按照顺序分别进入两个队列,然后输出,例如C,则1,3,5入队列1号,2,4入队列2号,则可实现1,3,2,4,5的输出序列,原理和拿到火车题一样、

已知循环队列存储在一维数组A【0…n-1】中,且队列非空时frontrear分别指向对头元素和队尾元素。若初始化时队列为空,且要求第一个进入队列的元素存储在A【0】处,则初始时frontrear的值分别是_____和_______

  • 答案:B
  • 分析:首先不可能指向同一个地方,因为这样说明有一个元素,由于初始化后队列为空,而空时应该为(rear+1)%n=front,因此front应在rear前面,故选择B
  • 注意:(1)循环队列的循环指顺序存储结构上的循环,而不是逻辑上的循环(2)front和rear的初始值并不是固定的

二、栈和队列的应用

对于一个问题的递归算法求解和其对应的非递归算法求解________-
A.递归算法通常效率高一些
B.非递归算法通常效率高一些
C.两者相同
D.无法比较

  • 答案:B
  • 分析
    通常情况下,递归由于包含很多的重复计算,所以效率很低
  • 补充
    递归转化为非递归时,未必要使用栈

对特殊矩阵采用压缩存储的主要目的_______

  • 答案:减少不必要的存储空间

判断题:稀疏矩阵的特点是矩阵中的元素较少( )

  • 答案:错,是非0元素较少

总结

本章节题目多为逻辑思考题,相对有趣,题目固定但细节繁多!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/61886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络层协议IP

对于网络层我们直接通过IP协议来了解其内容 一.IP协议 首先我们先来了解几个概念: 主机:配有IP地址,但是不进行路由控制的设备 路由器:配有IP地址,同时进行路由控制的设备 节点:主机和路由器的统称 所以现在…

道品智能科技移动式水肥一体机:农业灌溉施肥的革新之选

在现代农业的发展进程中,科技的力量正日益凸显。其中,移动式水肥一体机以其独特的可移动性、智能化以及实现水肥一体化的卓越性能,成为了农业领域的一颗璀璨新星。它不仅改变了传统的农业灌溉施肥方式,更为农业生产带来了高效、精…

数据结构 (10)队列

前言 队列是一种特殊的数据结构,它遵循先进先出(FIFO,First In First Out)的原则。 一、定义与基本概念 定义:队列是一种只允许在一端(队尾)进行插入操作,而在另一端(队头…

【数据分享】2001-2023年我国30米分辨率冬小麦种植分布栅格数据(免费获取)

小麦、玉米、水稻等各类农作物的种植分布数据在农业、环境、国土等很多专业都经常用到! 本次给大家分享的是我国2001-2023年逐年的30米分辨率冬小麦种植分布栅格数据!数据格式为TIFF格式,数据坐标为GCS_WGS_1984。该数据包括我国11个省份的冬…

17.5k Star,ThingsBoard 一款开源、免费、功能全面的物联网 IoT 平台 -慧知开源充电桩平台

项目介绍 ThingsBoard是一个开源、免费、功能全面、灵活易用的物联网(IoT)平台,专注于数据收集、处理、可视化以及设备管理。它提供了一个全面的解决方案,用于构建和管理物联网应用。支持从各种设备收集数据,通过内置…

力扣面试150 填充每个节点的下一个右侧节点指针 II BFS 逐层构建法

Problem: 117. 填充每个节点的下一个右侧节点指针 II 🍻 BFS 空间优化 👩‍🏫 参考题解 ⏰ 时间复杂度: O ( n ) O(n) O(n)🌎 空间复杂度: O ( 1 ) O(1) O(1) class Solution {public Node connect(Node root) {if (root …

ElasticSearch学习篇18_《检索技术核心20讲》LevelDB设计思想

目录 一些常见的设计思想以及基于LSM树的LevelDB是如何利用这些设计思想优化存储、检索效率的。 几种常见的设计思想 索引和数据分离减少磁盘IO读写分离分层思想 LevelDB的设计思想 读写分离设计分层设计与延迟合并LRU缓存加速检索 几种常见设计思想 索引与数据分离 索引…

LabVIEW Real-Time 的特点

LabVIEW Real-Time(简称 LabVIEW RT)是为实时系统设计的软件平台,结合 NI 硬件(如 CompactRIO 和 PXI 系列),能够在高可靠性、高性能要求的场景中实现稳定的实时控制与数据处理。以下是它的主要用处和特点&…

使用脚本实现hadoop-yarn-flink自动化部署

本文使用脚本实现hadoop-yarn-flink的快速部署(单机部署)。 环境:①操作系统:CentOS 7.6;②CPU:x86;③用户:root。 1.前置条件 把下面的的脚本保存到“pre-install.sh”文件&#x…

【JUC-Interrupt】中断相关概念

线程中断 一、相关概念二、API2.1、isInterrupted方法2.2、interrupted方法2.3、interrupt 三、总结: 一、相关概念 一个线程不应该由其他线程中断或停止,应该有线程自己来决定。 在Java中没有办法立即停止一个线程,因此提供了用于停止线程…

javascript基础学习

什么是伪代码 伪代码(Pseudocode)是一种介于自然语言和编程语言之间的算法描述方式。它使用类似自然语言的语句来描述程序的逻辑和流程,但又采用了编程语言中的一些结构和控制语句,如循环、条件判断等。 伪代码的目的是在不涉及具体编程语言语法细节的情况下,清晰地表达…

Django+Nginx+uwsgi网站Channels+redis+daphne多人在线聊天实现粘贴上传图片

在DjangoNginxuwsgi网站Channelsredisdaphne多人在线的基础上(详见DjangoNginxuwsgi网站使用Channelsredisdaphne实现简单的多人在线聊天及消息存储功能-CSDN博客),实现在输入框粘贴或打开本地图片,上传到网站后返回图片路径&…

C++ —— 以真我之名 如飞花般绚丽 - 智能指针

目录 1. RAII和智能指针的设计思路 2. C标准库智能指针的使用 2.1 auto_ptr 2.2 unique_ptr 2.3 简单模拟实现auto_ptr和unique_ptr的核心功能 2.4 shared_ptr 2.4.1 make_shared 2.5 weak_ptr 2.6 shared_ptr的缺陷:循环引用问题 3. shared_ptr 和 unique_…

vulnhub靶场之breakout

empire靶场2 前言 靶机:breakout 攻击:kali 续接上个靶场empire1的继续学习 主机发现 使用arp-scan扫描或者直接查看虚拟机的ip地址 信息收集 使用nmap扫描 端口80apache 2.4.51开启smb服务的两个端口139、445,版本4.6.2两个http服务采…

今天你学C++了吗?——C++中的类与对象(第二集)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

聚划算!一区算法!双分解+牛顿拉夫逊优化+深度学习!CEEMDAN-VMD-NRBO-Transformer多元时序预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CEEMDAN-Kmeans-VMD-NRBO-Transformer融合K均值聚类的数据双重分解牛顿-拉夫逊优化算法Transformer多元时间序列预测(完整源码和数据)运行环境Matlab2023b及以上。 2.CEEMDAN分解…

C++设计模式-中介者模式

动机(Motivation) 多个对象相互关联的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,可以使用一种”中介对象“来管理对象间的关联关系,避免…

滑动窗口篇——如行云流水般的高效解法与智能之道(2)

前言: 上篇我们介绍了滑动窗口的含义并结合基础题型加以练习,本篇将以进阶难度的题目为索引,深化对于滑动窗口的运用与理解。 一. 将x减到0的最小操作数 题目链接:1658. 将 x 减到 0 的最小操作数 - 力扣(LeetCode&am…

EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks 学习笔记

1 Contributions 混合显式-隐式网络架构:提出了一种 Tri-plane 的3D表征方法,结合显式体素网格与隐式解码器的优点 速度快,内存效率高; 支持高分辨率生成,保持3D表征的灵活性和表达能力。与纯显式或隐式方法相比&#…

⭐ Unity 资源管理解决方案:Addressable_ Demo演示

一、使用Addressable插件的好处: 1.自动管理依赖关系 2.方便资源卸载 3.自带整合好的资源管理界面 4.支持远程资源加载和热更新 二、使用步骤 安装组件 1.创建资源分组 2.将资源加入资源组 3.打包资源 4.加载资源 三种方式可以加载 using System.Collections…