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,一经查实,立即删除!

相关文章

临床检验方法与仪器 第四部分作业:细胞及分子生物学检验仪器

临床检验方法与仪器 第四部分作业 调研“细胞及分子生物学检验仪器”中哪些有国产品牌,说明产品类型及名称,并分析我国产品与国际品牌产品的优势和不足。如果只有国外产品,请说明主要品牌名称和产品优势。 细胞及分子生物学检验仪器包括&…

快速排序&Lambda表达式

快速排序 912. 排序数组 #include <iostream> #include <vector> #include <ctime> #include <algorithm> // 用于交换函数swapusing namespace std;class Solution { public:// 函数功能&#xff1a;对给定数组nums的指定区间[l, r]进行划分操作&am…

网络层协议IP

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

cryptography与zlib系列:数据分块解密与解压

cryptography与zlib系列&#xff1a;数据分块解密与解压 数据分块压缩与加密可以查看我的另外一篇博客&#xff0c;这里与之相对应的是解密与解压的操作。解压之后的数据转为BytesIO对象用于后续读取&#xff0c;适用于大部分数据格式&#xff0c;而不需要从文件中读取。 完整…

react函数式组件中的路由传参方式

React Router 提供了多种方式来传递路由参数&#xff1a; URL 路径参数&#xff1a;通过动态路由和 useParams 获取。查询参数&#xff1a;通过 useLocation 获取 URL 查询字符串。路由状态传递&#xff1a;通过 state 属性在导航时传递数据&#xff0c;不在 URL 中显示&#…

八股文-基础知识-面试题汇总(一)

面向对象和面向过程的区别&#xff1f; 面向对象和面向过程是两种不同的编程范式&#xff0c;它们在设计和实现软件时有着不同的理念和方法。面向对象更适合大型、复杂的项目&#xff0c;尤其是需要维护和扩展的系统&#xff1b;而面向过程更适合小型、线性的任务或对性能要求…

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

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

数据结构 (10)队列

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

C#中的异步操作

在 C# 中&#xff0c;异步编程主要是通过 async 和 await 关键字实现的&#xff0c;它们使得异步操作变得更加简洁和易于维护。以下是关于异步线程用法的基本介绍&#xff0c;以及如何编写一个异步函数的步骤和示例。在之前的项目中我其实一直在用这些异步的方法&#xff0c;今…

Python3 WebUI自动化总篇:Python3+Selenium+Pytest+Allure+ Jenkins webUI自动化框架

Python3 WebUI自动化总篇: Python3+Selenium+Pytest+Allure+ Jenkins webUI自动化框架 WebUI接口框架使用的工具

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

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

Linux和Ubuntu的关系

Linux和Ubuntu的关系&#xff1a; 1. Linux本身是内核&#xff0c;Ubuntu系统是基于Linux内核的操作系统。 2. Linux内核操作系统的构成&#xff1a; 内核、shell、文件系统、应用程序 -应用程序&#xff1a;文本编辑器等 -文件系统&#xff1a;文件存放在存储设备上的组织方…

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

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

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

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

Applicaiton配置文件

server:port: 8080 # 配置 Spring Boot 启动端口&#xff0c;默认为 8080mybatis-plus:mapper-locations: classpath:com/xtl/mapper/xml/*.xml # 指定 MyBatis Mapper XML 文件的路径&#xff0c;确保 MyBatis 能够正确加载 Mapper 文件global-config:db-config:id-type: au…

网络安全:攻击和防御练习(全战课), DDos压力测试

XSS 跨站脚本攻击&#xff1a; Cross-site scripting&#xff08;简称xss&#xff09;跨站脚本。 一种网站的安全漏洞的攻击&#xff0c;代码注入攻击的一种。XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使…

文本显示text

文本显示 text是文本组件 创建文本 Text(基础语法)// 引用字符串Text($r(app.string.hella))添加子组件 span能作为Text和RichEditor组件的子组件显示文本内容。 创建span span组建需要写在text组件里面&#xff0c;无法单独使用&#xff0c;可以写多个子组件 Text(可…

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

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

LabVIEW Real-Time 的特点

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

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

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