数据结构绪论、顺序表课后练习题

news2025/8/7 13:15:28

文章目录

  • 第1章 绪论
    • 一 填空题
    • 二 选择题
    • 三 判断题✅❎
  • 第2章 线性表
    • 一 判断正误
    • 二 单项选择题
    • 三 简答题

第1章 绪论

一 填空题

  1. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
  2. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构
  3. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
  4. 数据的存储结构可用四种基本的存储方法表示,它们分别是顺序存储结构、链式存储结构、索引、散列。
  5. 一个算法的效率可分为 时间效率和空间效率
  6. 数据结构是研讨数据的逻辑结构和物理/存储结构,以及它们之间的相互关系,并对与这种结构定义相应的操作/算法,设计出相应的算法
  7. 下面程序段中带下划线的语句的执行次数的数量级是( n log ⁡ 2 n n \log_2 n nlog2n)。
int i=1;
while (i<n){
	for (int j=1;j<=n;j++){
		x=x+1;
	}
	i=i*2;
}
  1. 设有数据结构(D, R),其中 D={d1, d2, d3, d4} R={r}, r={(d1, d2)(d2, d3)(d3, d4)} ,则数据结构D是线性的数据结构。

二 选择题

  1. 连续存储设计时,存储单元的地址( )。
    A. 一定连续
    B.一定不连续
    C.不一定连续
    D.部分连续,部分不连续
  2. 数据结构中,与所使用的计算机无关的是数据的 结构.
    A) 存储
    B) 物理
    C) 逻辑
    D) 物理和存储
  3. 算法分析的目的是()
    A) 找出数据结构的合理性
    B) 研究算法中的输入和输出的关系
    C) 分析算法的效率以求改进
    D) 分析算法的易懂性和文档性
  4. 计算机算法必须具备输入、输出和( )等5个特性。
    A) 可行性、可移植性和可扩充性
    B) 可行性、确定性和有穷性
    C) 确定性、有穷性和稳定性
    D) 易读性、稳定性和安全性
  5. 下面说法错误的是( )
    (1)算法原地工作的含义是指不需要任何额外的辅助空间✅
    (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法
    (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
    (4)同一个算法,实现语言的级别越高,执行效率就越低。❌
    A.(1)
    B.(1),(2)
    C.(1),(4)
    D.(3)
    6.从逻辑上可以把数据结构分为( )两大类。
    A.动态结构、静态结构
    B.顺序结构、链式结构
    C.线性结构、非线性结构
    D.初等结构、构造型结构

三 判断题✅❎

  1. 数据元素是数据的最小单位。(❎)解析:数据元素是数据的最小单位
  2. 数据项是数据处理的最小单位。 ( ✅ )
  3. 数据的逻辑结构是指数据的各数据元素之间的逻辑关系。( ✅ )
  4. 数据的物理结构是指数据在计算机内的实际存储形式。( ✅ )
  5. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( ❎ )
  6. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。( ❎ )

第2章 线性表

一 判断正误

( ❎ )1. 链表的每个结点中都恰好包含一个指针。

  • 解析:链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
    (❎ )2. 链表的物理存储结构具有同链表一样的顺序。
  • 解析:链表的存储结构特点是无序,而链表的示意图有序。
    ( ❎ )3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
  • 解析:链表的结点不会移动,只是指针内容改变。
    (❎ )4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
  • 解析:混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。
    (❎ )5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
  • 解析:正好说反了。顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”
    (❎ )6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
  • 解析:前一半正确,但后一半说法错误,那是链式存储的优点。顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。
    ( ❎ )7. 线性表在物理存储空间中也一定是连续的。
  • 解析:线性表有两种存储方式,顺序存储和链式存储。后者不要求连续存放。
    ( ❎ )8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。
  • 解析:线性表有两种存储方式,在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。
    ( ❎ )9. 顺序存储方式只能用于存储线性结构。
  • 解析:顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。(后一节介绍)
    (❎ )10. 线性表的逻辑顺序与存储顺序总是一致的。
  • 解析:理由同7。链式存储就无需一致。

二 单项选择题

  1. 数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为( C )
    (A)存储结构
    (B)逻辑结构
    (C)顺序存储结构
    (D)链式存储结构
  2. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( B )
    (A)110
    (B)108
    (C)100
    (D)120
  3. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( A )
    (A)访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
    (B)在第i个结点后插入一个新结点(1≤i≤n)
    (C)删除第i个结点(1≤i≤n)
    (D)将n个结点从小到大排序
  4. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( B)个元素
    (A)8
    (B)63.5
    (C)63
    (D)7
  • 解析:一共127个元素,就有128个位置可以插入,表首插入移动次数为127,表尾插入移动次数为0,也就是从0累加到127,再除于128次,得63.5。
  1. 链接存储的存储结构所占存储空间:( A )
    (A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。
    (B)只有一部分,存放结点值
    (C)只有一部分,存储表示结点间关系的指针
    (D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
  2. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址:( D )
    (A)必须是连续的
    (B)部分地址必须是连续的
    (C)一定是不连续的
    (D)连续或不连续都可以
  3. 线性表L在____情况下适用于使用链式结构实现。( B )
    (A)需经常修改L中的结点值
    (B)需不断对L进行删除插入
    (C)L中含有大量的结点
    (D)L中结点结构复杂
  4. 单链表的存储密度( C )
    (A)大于1;
    (B)等于1;
    (C)小于1;
    (D)不能确定
  • 解析:存储密度 = (结点数据本身所占的存储量)/(结点结构所占的存储总量)
  1. 设a1、a2、a3为3个结点,整数P0,3,4代表地址,则如下的链式存储结构称为( B )
    在这里插入图片描述
    (A)循环链表 (B)单链表 (C)双向循环链表 (D)双向链表
  2. 下面关于线性表的叙述中,错误的是哪一个? ( B )
    A.线性表采用顺序存储,必须占用一片连续的存储单元。
    B.线性表采用顺序存储,便于进行插入和删除操作。
    C.线性表采用链接存储,不必占用一片连续的存储单元。
    D.线性表采用链接存储,便于插入和删除操作。
  3. 线性表是具有n个________的有限序列(n>0)。( C )
    A.表元素 B.字符 C.数据元素 D.数据项
  4. 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用______存储方式最节省时间。( A )
    A.顺序表
    B.双链表
    C.带头结点的双循环链表
    D.单循环链表
  5. 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用 _______存储方式最节省运算时间。( D )
    A.单链表
    B.仅有头指针的单循环链表
    C.双链表
    D.仅有尾指针的单循环链表
  6. 静态链表中指针表示的是________. ( C )
    A. 内存地址
    B.数组下标
    C.下一元素地址
    D.左、右孩子地址
    在这里插入图片描述
typedef struct {
    int data;//数据域
    int cur;//游标
}component;
  1. 链表不具有的特点是_________. ( B )
    A.插入、删除不需要移动元素
    B.可随机访问任一元素
    C.不必事先估计存储空间
    D.所需空间与线性长度成正比

  2. 完成在双循环链表结点p之后插入s的操作是( ).( D )
    A. p^.next:=s ; s^.priou:=p; p^.next^.priou:=s ; s^.next:=p^.next;
    B. p^.next^.priou:=s; p^.next:=s; s^.priou:=p; s^.next:=p^.next;
    C. s^.priou:=p; s^.next:=p^.next; p^.next:=s; p^.next^.priou:=s ;
    D.s^.priou:=p; s^.next:=p^.next; p^.next^.priou:=s ; p^.next:=s;
    在这里插入图片描述

  3. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:( B )。
    A.p->next=s;s->next=p->next;
    B. s->next=p->next;p->next=s;
    C.p->next=s;p->next=s->next;
    D. p->next=s->next;p->next=s;
    在这里插入图片描述

  4. 对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( B )
    A.head==NULL
    B.head→next==NULL
    C.head→next==head
    D.head!=NULL

  5. 双向链表存储结构中,删除p所指的结点时须修改指针( A )。
    A. (p^.llink)^.rlink:=p^.rlink ; (p^.rlink)^.llink:=p^.llink;
    B.p^.llink:=(p^.llink)^.llink; (p^.llink)^.rlink:=p;
    C. (p^.rlink)^.llink:=p ; p^.rlink:=(p^.rlink)^.rlink
    D. p^.rlink:=(p^.llink)^.llink; p^.llink:=(p^.rlink)^.rlink;
    在这里插入图片描述

三 简答题

  1. 线性表有两种存储结构:一是顺序表,二是链表。试问:
    • 如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构? 为什么?
      • 链式存储结构。它可动态申请内存空间,不受表长度(即表中元素个数)的影响,插入、删除时间复杂度为O(1)
    • 若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?
      • 顺序存储结构顺序表可以随机存取,时间复杂度为O(1)
  2. 在单链表中设置头结点的作用是什么?
    • 在单链表的首元结点(第一个数据元素)之前附设的结点,称为头结点,其作用是为了对单链表进行操作时,对空表和非空表的情况统一处理,对首元结点和其它结点统一处理。

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

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

相关文章

idea如何排查jar冲突

工具系列文章目录 idea如何排查jar冲突提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结前言 当遇到jar包冲突的时候常常会出现…

自动驾驶入门:控制

目录 概念 控制流程 PID控制 PID 的优劣势 LQR 线性二次调节器 模型控制预测 总结 概念 控制是驱使车辆前行的策略。对于汽车而言&#xff0c;最基本的控制输入为转向、加速和制动。通常&#xff0c;控制器使用一系列路径点来接收轨迹。 控制器的任务是使用控制输入让…

Flask微服务注册到Nacos

目录一、前言二、手写实现Flask注册到Nacos1. 服务注册2. 心跳检测三、使用nacos-sdk-python完成注册四、SpringBoot远程调用1. 添加 Python 端业务逻辑2. SpringBoot 的远程调用五、SpringGateway网关转发一、前言 最近有一个使用 SpringCloud 的微服务项目&#xff0c;需要使…

[附源码]java毕业设计面向服装集群企业的个性化定制服务系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

C++ 异常处理 重新throw变量时的事件

直接说结论&#xff1a;throw的表达式创建出来的变量会被拷贝下来【通过拷贝构造函数&#xff0c;后面会证实这一点&#xff0c;且是放在堆里的】&#xff0c;然后沿着调用路径去搜索最近匹配异常的catch语句&#xff0c;在沿途&#xff0c;传递给catch语句的是堆中的异常变量的…

2022年数维杯国际大学生数学建模挑战赛D题三重拉尼娜事件下极端气候灾害损失评估与应对策略研究解题过程

2022年数维杯国际大学生数学建模挑战赛 D题 三重拉尼娜事件下极端气候灾害损失评估与应对策略研究 原题再现&#xff1a; 2022年7月至8月&#xff0c;中国南方许多城市经历了多天的炎热天气&#xff0c;而北方部分地区也出现了大面积强降水。此外&#xff0c;许多欧洲国家也经…

GEE开发之Modis_NDVI数据分析获取大总结

GEE开发之Modis_NDVI数据分析获取大总结0. 之前的博客链接1. MYD13Q1(250米/16天)2. MOD09GA_006_NDVI(500米/1天)3. MOD13Q1(250米/16天)4. MOD13A1(500米/16天)5. MOD13A2(1000米/16天)6. 日数据下载(以MYD13Q1为例子)7. 月数据下载(以MYD13Q1为例子)7.1 代码一7.2 代码二&am…

博途1200PLC轴控功能块(脉冲轴)

1200选择晶体管输出的型号,本体支持脉冲发送,利用工艺对象可以组态脉冲轴。利用1200和1500PN总线可以进行总线伺服的控制,具体请参看下面的博客: 博途1200/1500PLC V90 PN通信控制 (FB284功能块)_RXXW_Dor的博客-CSDN博客_fb284功能块先简单说下如何获取FB284,一般有2种方…

redirs非关系型数据库使用

非关系型数据库是将不经常使用的数据保存到redis缓存中&#xff0c;当前端访问redis缓存数据&#xff0c;如果没有查到该数据&#xff0c;则从数据库中查询&#xff0c;并将数据缓存到redis里。 数据结构介绍&#xff1a; redis的存储主要是key,value的数据格式&#xff0c;其…

Node.js 是如何做 GC (垃圾回收)的?

大家好&#xff0c;我是前端西瓜哥。今天我们来研究一下 Node.js 是如何做 GC 的。 GC&#xff0c;Garbage Collection&#xff0c;垃圾回收。在编程中&#xff0c;一般指的是内存自动回收机制&#xff0c;会定时将不需要用到的数据进行清除。 Node.js 底层使用了 V8 引擎。V…

Android入门第31天-Android里的ViewFlipper翻转视图的使用

介绍 本篇给大家带了的是ViewFlipper&#xff0c;它是Android自带的一个多页面管理控件&#xff0c;且可以自动播放&#xff01; 和ViewPager不同&#xff0c;ViewPager是一页页的&#xff0c;而ViewFlipper则是一层层的&#xff0c;和ViewPager一样&#xff0c;很多时候&…

Vivado在Linux下的安装与运行

一. Vivado安装步骤 下载解压安装包后&#xff0c;并进入安装包路径运行终端 cd Downloads/Xilinx_Vivado_SDK_2017.4运行 sudo apt install libncurses5 安装ncurses库 sudo apt install libncurses5 运行 sudo chmod x setup 添加可执行权限 sudo chmod x setup运行 sudo .…

PHP反序列化漏洞解析

序列化 所谓序列化就是将原数据对象转换为具有一定格式的数据 举一个最简单的例子&#xff0c;在C中&#xff0c;若要开发一个数据库&#xff0c;那么一定涉及到数据的存储&#xff0c;要将内存中的数据持久化的保存在磁盘中&#xff0c;这就要对数据的存储格式进行优化&…

[附源码]java毕业设计企业信息网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

网关及其分类

1. 介绍 大家都知道&#xff0c;从一个房间走到另一个房间&#xff0c;必然要经过一扇门。同样&#xff0c;从一个网络向另一个网络发送信息&#xff0c;也必须经过一道“关口”&#xff0c;这道关口就是网关。顾名思义&#xff0c;网关(Gateway)就是一个网络连接到另一个网络的…

深度探究多线程的效率以及多线程的使用建议

随着时代发展&#xff0c;电脑的核心数慢慢增多&#xff0c;在开发程序的过程中&#xff0c;是否选择使用多线程这是个比较大的问题&#xff0c;下面我通过一个程序去深入理解多线程对程序速度的影响到底有多大 计算亿级别个数的累加和&#xff1a; 单线程模型运行程序&#…

SNMP(二)

♥️作者&#xff1a;小刘在C站 ♥️每天分享云计算网络运维课堂笔记&#xff0c;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放。 目录 一.SNMP是什么 二.SolarWinds 网管软件使用 步骤1 步骤2 步骤3 步骤4 三.SNMP命令…

使用go pprof进行golang程序内存分析

引言 日常项目&#xff0c;有时会出现oom的情况&#xff0c;这时候我们光依靠code review进行问题定位是很困难的。这里我们需要一个排查工具&#xff0c;来定位是哪里的代码导致内存溢出的&#xff0c;这个工具就是pprof前提 如果是非http(s)服务类的&#xff0c;需要在代码…

基于PHP+MySQL的宠物领养救助社交网站

当前很多的宠物被抛弃和虐杀,它们没有选择权,我们强制性的把狗带进人类的生活中,然后又无情的抛弃,让它们无家可归,变成流浪狗,它们做错了什么&#xff1f;流浪动物被主人遗弃之后居无定所,时刻面对着严寒、酷暑、生病、死亡,饥饿、等一系列威胁它们生命的存在为了能够让这些。…

BlenderGIS插件 城市建筑3D模型自动生成 教程

目录 一、下载Blender和BlenderGIS 二、解决 No imaging library...报错 三、生成城市3D模型 四、导出模型 本文所需文件可在如下链接下载&#xff0c;或者直接按照博文下载步骤下载 https://download.csdn.net/download/ChaoChao66666/87071901?spm1001.2014.3001.550…