数据结构 每日一练:选择 + 编程

2023-10-27

目录

选择

编程


选择

1.

在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入结点s,则执行()

A.  s->next=p->next;   p->next=s;               B.  p->next=s->next;  s->next=p;

C.  q->next=s;  s->next=p;                          D.p->next=s;   s->next=q;

答案:C

解析:s插入后,q成为s的前驱,p成为s的后继。是不是有小伙伴认为C中的语句会造成短链,应该交换位置呢,其实C的语句顺序并不会造成短链。这是因为本题插入位置的前后节点都有指针指示。

2.

给定有n个元素的一维数组,建立一个有序单链表的最低时间复杂度是()

A.  O(1)                B.  O(n)            C.  O(n^2)            D.  O(nlogn)

答案:D

解析:若先建立链表,然后依次插入建立有序表,则每插入一个元素就需要遍历链表寻找插入位置,即直接插入排序,时间复杂度为O(n^2)。若先将数组排好序,然后建立链表,建立链表的时间复杂度为O(n),数组排序的最好时间复杂度为O(nlogn),总时间复杂度为O(nlogn)

3.

在双链表中向p所指的结点之前插入一个结点q的操作为()

A.  p->prior=q; q->next=p; p->prior->next=q; q->prior=p->prior;

B.  q->prior=p->prior; p->prior->next=q; q->next=p; p->prior=q->next;

C.  q->next=p; p->next=q; q->prior->next=q; q->next=p;

D.  p->prior->next=q; q->next=p; q->prior=p->prior; p->prior=q;

答案:D

解析:在p之前插入结点q,可以将p的前一个结点的next域指向q,将q的next域指向p,将q的prior域指向p的前一个结点,将p的prior域指向q。

4.

带头节点的双循环链表L为空的条件是()

A.  L->prior==L&&L->next==NULL;

B.  L->prior==NULL&&L->next==NULL;

C.  L->prior==NULL&&L->next==L;

D.  L->prior==L&&L->next==L;

答案:D

解析:循环双链表L判空的条件是头结点(头指针)的prior和next域都指向它自身。

5.

一个链表最常用的操作是在末尾插入结点和删除结点,则选用()最节省时间

A.  带头结点的双循环链表     B.  单循环链表    C.  带尾指针的单循环链表     D.  单链表 

答案:A

解析:在链表的末尾插入和删除一个结点时,需要修改其相邻结点的指针域。在寻找尾结点及尾结点的前驱结点时,只有带头结点的双循环链表所需要的时间最少。 

编程

 题目:将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表

思路:按顺序不断将取下两个顺序表表头较小的结点存入新的顺序表中,然后,把有剩余的表的元素加到新的顺序表的后面。

代码:

bool Merge(SeqList A, SeqList B, SeqList &C)//A,B合并成C
{
	if (A.length + B.length > C.maxsize)//超过C的长度,退出
		return false;
	int i = 0, j = 0, k = 0;
	while (i < A.length && j < B.length)//选取小的元素存入C
	{
		if (A.data[i] <= B.data[j])
			C.data[k++] = A.data[i++];
		else
			C.data[k++] = B.data[j++];
	}
	while(i < A.length)         //剩余元素存入C
		C.data[k++] = A.data[i++];
	while (i < B.length)
		C.data[k++] = B.data[j++];
	C.length = k;
	return true;
}

 

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

数据结构 每日一练:选择 + 编程 的相关文章

  • opencv的图像编解码问题

    问题1 不同版本的opencv读取的图像数据灰度值不一样 问题2 一个版本的opencv保存的图像 用另一个版本的opencv无法打开 两个问题的原因 不同版本的opencv发布包 从官方下载的dll和lib 采用了不同版本的图像编解码库
  • html p怎么设置空两格,【总结】怎样在

    标签内显示空格——空格实体

    一般在 标签中 无论文字间有几个空格都只会显示一个 若需显示多个 则需用到html中的几种空格实体 即不换行空格 全称No Break Space 是最常见且使用最多的空格 HTML字符值引用为 宽度受字体影响明显而强烈 即 半角空格 全称

随机推荐

  • 解决复制粘贴出现的错误

    proc2 c 49 5 错误 程序中有游离的 240 proc2 c 49 5 错误 程序中有游离的 302 proc2 c 49 5 错误 程序中有游离的 240 proc2 c 49 5 错误 程序中有游离的 302 proc2 c
  • 2022年度笔记本十大热门品牌销量排行榜

    近年来 由于大环境的改变 线上教育 线上办公等的需求使得平板电脑出货量逐步提升 同时 5G时代来临 万物互联是未来的趋势 手机由于操作系统和交互上的局限性 笔记本电脑将会扮演更加重要的角色 未来 整个笔记本电脑行业的空间有望进一步打开 根据
  • 数据结构代码——折半插入排序

    折半插入排序的算法思想可以参考王道数据结构的书 建议先看书或者通过B站学习相关课程了解算法思想后再看代码 代码 define CRT SECURE NO WARNINGS 1 define ElemType int include
  • 什么是Token(令牌)

    Acess Token 访问资源接口 API 时所需要的资源凭证 简单token 的组成 uid 用户唯一的身份标识 time 当前时间的时间戳 sign 签名 token的前几位以hash算法压缩成的一定长度的16进制字符串 特点 服务端
  • centos7 systemctl 命令详解

    Systemctl 命令简介 定义 systemctl一个系统管理守护进程 工具和库的集合 用于取代System V service和chkconfig命令 功能 systemctl 主要用于查询或发送控制命令给systemd服务 管理单元
  • 执行查看数据库表空间信息报错 ORA-01116、ORA-01110、ORA-27041

    查看剩余表空间大小 SELECT tablespace name 表空间 sum blocks 8192 1000000 剩余空间M FROM dba free space GROUP BY tablespace name ORA 0111
  • Django(8)-静态资源引用CSS和图片

    除了服务端生成的 HTML 以外 网络应用通常需要一些额外的文件 比如图片 脚本和样式表 来帮助渲染网络页面 在 Django 中 我们把这些文件统称为 静态文件 我们使用static文件来存放静态资源 django会在每个 INSTALL
  • pip install 出现Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问

    pip install U numpy进行更新的时候出现了上述的问题 百度了一下直接在install后面加上 user 就可以了 pip install user upgrade numpy
  • 使用ffmpeg对rtsp视频截图

    ffmpeg i rtsp 192 168 1 64 554 Streaming Channels 1 y f mjpeg t 0 001 s 1280x720 test jpg 使用ffmpeg对摄像头的视频流进行截图 rtsp 192
  • Linux内网环境安装nginx,离线安装nginx教程

    说明 本教程针对内网环境 没有互联网环境 安装nginx 安装前测试 nginx未安装时 无法访问 curl http localhost 80 第一步 请参考教程 本地yum源安装 教程连接如下 https note youdao com
  • IDEA在XML中提示SQL

    首先配置Database 选择数据库类型之后 填写数据库配置 配置完成之后右键表名 mybatis generator生成从controller dao单表的代码 Jump to Query Console跳转到IDEA编写SQL的页面 非
  • Stable Diffusion界面参数及模型使用

    系列文章目录 本地部署Stable Diffusion教程 亲测可以安装成功 谷歌Colab云端部署Stable Diffusion 进行绘图 文章目录 系列文章目录 前言 Stable Diffusion界面参数 一 模型是干什么的 二
  • uniapp引入iconfont图标

    1 iconfont官网下载好图标并解压 2 将以下文件复制到项目中 3 文件在项目中的位置 4 打开iconfont css文件修改 font face 里面的路径 修改为相对路径 static fonts 示例如下 5 在App vue
  • 利用mysql load data秒级别大批量写入数据,建议单次10w+以上~速度远超批量insert,附上完整封装工具

    平时项目中 有时候可能会遇到需要大批量写入数据到mysql数据库中的场景 这时候我们可以利用mysql自带的load data语法 先将数据写入文本文件 再将文件读入数据库 具体用法看下面 1 表结构如下 CREATE TABLE wewo
  • Win10家庭版禁用系统更新方法汇总及问题解决

    这个文章针对没有组策略gpedit msc的win10家庭版 网上有几种方法 我在这里汇总一下 并记录之后遇到的问题及 一 先启用组策略 然后禁止更新 1 启用组策略 win10家庭版是没有组策略gpedit msc的 在电脑任意位置创建一
  • 微软宣布在 Excel 中使用 Python:结合了 Python 的强大功能和 Excel 的灵活性。

    文章目录 Excel 中的 Python 有何独特之处 1 Excel 中的 Python 是为分析师构建的 高级可视化 机器学习 预测分析和预测 数据清理 2 Excel 中的 Python 通过 Anaconda 展示了最好的 Pyth
  • C语言基础系列(三)——链表

    C语言基础系列 三 链表 1 链表的定义 链表是一些包含数据的独立结构体 被称为节点 的集合 1 1 单链表 在单链表中 每个节点包含一个指向链表下一节点的指针 示意图如下 定义的节点结构体声明如下 typedef struct NODE
  • 合宙Air103

    目录 基础资料 探讨重点 实现功能 硬件准备 软件版本 软件使用 初始化硬件i2c 发送指令给AHT10触发测量并读数 状态位说明 读取流程 核心函数注 基础资料 基于Air103开发板 Air103 LuatOS 文档 上手 开发上手 L
  • Swagger3快速入门

    Swagger 快速入门SpringBoot集成Swagger 依赖 配置类 SwaggerConfig 访问 配置Swagger 可以通过apiInfo 属性配置文档信息 完整版 访问 controller 测试接口 正则表达式设置路径范
  • 数据结构 每日一练:选择 + 编程

    目录 选择 编程 选择 1 在一个单链表中 已知q所指结点是p所指结点的前驱结点 若在q和p之间插入结点s 则执行 A s gt next p gt next p gt next s B p gt next s gt next s gt n