DS期末复习卷(八)

news2025/7/22 15:21:56

一、选择题(30分)

1.字符串的长度是指( C )。
(A) 串中不同字符的个数 (B) 串中不同字母的个数
(C ) 串中所含字符的个数 (D) 串中不同数字的个数

2.建立一个长度为n的有序单链表的时间复杂度为( C )
(A) O(n) (B) O(1) © O(n^2) (D) O(log2n)

建立有序单链表的时间复杂度为O(n^2)

3.两个字符串相等的充要条件是( C )。
(A) 两个字符串的长度相等 (B) 两个字符串中对应位置上的字符相等
( C) 同时具备(A)和(B)两个条件 (D) 以上答案都不对

4.设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择( B)。
(A) 99 (B) 97 ( C) 91 (D) 93

选一个素数作为模,能够减少发生冲突

5.在二叉排序树中插入一个关键字值的平均时间复杂度为(B )。
(A) O(n) (B) O(log2n) ( C) O(nlog2n) (D) O(n%2)

6.设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过程中比较元素的顺序为( C )。
(A) A[1],A[2],A[3],A[4] (B) A[1],A[14],A[7],A[4]
( C) A[7],A[3],A[5],A[4] (D) A[7],A[5] ,A[3],A[4]

1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 2 3 4 5 6
456
4

7.设一棵完全二叉树中有65个结点,则该完全二叉树的深度为( B )。
(A) 8 (B) 7 ( C) 6 (D) 5

假设二叉树的深度为k,则该二叉树最多有2^k - 1个节点,若k为6,则最多有2^6 - 1 = 63个节点,小于65。故该二叉树的深度为7,选B。

8.设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3的结点,则该三叉链权中有( C )个度数为0的结点。
(A) 5 (B) 6 (C ) 7 (D) 8

no=1+n2+2n3+=1+2+4=7

9.设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为(A )。
(A) aedfcb (B) acfebd ( C) aebcfd (D) aedfbc

abedfc
aedfcb
acedfb

10.队列是一种( A )的线性表。
(A) 先进先出 (B) 先进后出 © 只能插入 (D) 只能删除

二、判断题

1、如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。( )

2、设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。( )


快速排序在基本有序的时候算法时间复杂度是最坏的,此时为o(n^2)。相反在越无序的时候时间复杂度越低,为O(nlogn)。

3、分块查找的基本思想是首先在索引表中进行查找,以便确定给定的关键字可能存在的块号,然后再在相应的块内进行顺序查找。
( )

4、二维数组和多维数组均不是特殊的线性结构。( )

错。
数组都是线性结构

5、向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。( )


最坏情况下和树的高度一样,不可能比树的高度要大,在二叉搜索树中查找和二分查找相似。

6、如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。( )


有向图的邻接表
一行单链表表示该行头结点的出度

7、非空的双向循环链表中任何结点的前驱指针均不为空。( )


循环链表是最后一个节点的指针域指向头节点,而不是指向第一个节点,所以双向循环链表是一整个完整的循环。

8、不论线性表采用顺序存储结构还是链式存储结构,删除值为X的结点的时间复杂度均为O(n)。( )

9、图的深度优先遍历算法中需要设置一个标志数组,以便区分图中的每个顶点是否被访问过。( )

10、稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。( )

三、填空题

1、设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为
_____________________________。

(49,13,27,50,76,38,65,97)
d=4
[49,76]为一个子序列
[38,13]一个子序列
[65,27]一个子序列
[97,50]一个子序列
各自排序后放回他们在总序列中对应的位置(就是原本的位置交换一下变成升序)。

2、下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正确的内容。
在这里插入图片描述

t=(bitree *)malloc(sizeof(bitree))
bstinsert(t->rchild,k)

3、设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的语句序列:
s->next=p->next; _________________;

p->next=s;

4、设指针变量head指向双向链表中的头结点,指针变量p指向双向链表中的第一个结点,则指针变量p和指针变量head之间的关系
是p=和head=_(设结点中的两个指针域分别为llink和rlink)。

head->rlink
p->llink;

5、设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为__________。

CABD

6、完全二叉树中第5层上最少有__________个结点,最多有_________个结点。

1
16(2^(h-1))

7、设有向图中不存在有向边<Vi,Vj>,则其对应的邻接矩阵A中的数组元素A[i][j]的值等于____________。

0

8、设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则第4趟直接选择排序结束后的结果为__________。

(13,27,38,49,97,76,65,50)
13,38,65,97,76,49,27,50
13,27,65,97,76,49,38,50
13,27,38,65,97,76,49,50
13,27,38,49,97,76,65,50

9、设连通图G中有n个顶点e条边,则对应的最小生成树上有___________条边。

n-1
生成最小生成树需要包含图中各点,因此连接的边数为n- 1。

10、设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与___________相互交换
即可。

50
在这里插入图片描述
小根堆

四、算法设计题(20分)

1.设计一个在链式存储结构上统计二叉树中结点个数的算法。

void countnode(bitree* bt, int& count)
{
	if (bt != 0)
	{
		count++; 
		countnode(bt->lchild, count);
		countnode(bt->rchild, count);
	}
}

2.设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。

typedef struct { int vertex[m]; int edge[m][m]; }gadjmatrix;
typedef struct node1 { int info; int adjvertex; struct node1* nextarc; }glinklistnode;
typedef struct node2 { int vertexinfo; glinklistnode* firstarc; }glinkheadnode;
void adjmatrixtoadjlist(gadjmatrix g1[], glinkheadnode g2[])
{
	int i, j; glinklistnode* p;
	for (i = 0; i <= n - 1; i++) g2[i].firstarc = 0;
	for (i = 0; i <= n - 1; i++) for (j = 0; j <= n - 1; j++)
		if (g1.edge[i][j] == 1)
		{
			p = (glinklistnode*)malloc(sizeof(glinklistnode)); 
			p->adjvertex = j;
			p->nextarc = g[i].firstarc; 
			g[i].firstarc = p;
			p = (glinklistnode*)malloc(sizeof(glinklistnode)); 
			p->adjvertex = i;
			p->nextarc = g[j].firstarc; 
			g[j].firstarc = p;
		}
}

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

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

相关文章

小米/红米手机数据恢复:从小米手机恢复已删除的数据

如果您不小心删除了小米手机上的数据&#xff0c;后来发现您需要它&#xff0c;那么本文适合您。我将向您介绍一些最可靠的小米恢复方法&#xff0c;以将您的数据恢复到您的设备上。无论您是否有备份&#xff0c;都可以处理。让我们开始吧&#xff01; 小米数据恢复 - 如何做&a…

一篇学习JVM

基础入门 1.JDK、JRE、JVM三者间的联系与区别 JDK JDK(Java SE Development Kit)&#xff0c;Java标准开发包&#xff0c;它提供了编译、运行Java程序所需的各种工具和资源&#xff0c;包括Java编译器、Java运行时环境&#xff0c;以及常用的Java类库等。 下图是JDK的安装目…

博客管理系统--项目说明

项目体验地址&#xff08;账号&#xff1a;123&#xff0c;密码&#xff1a;123&#xff09;http://120.53.20.213:8080/blog_system/login.html项目码云Gitee地址&#xff1a;https://gitee.com/GoodManSS/project/tree/master/blog_system&#xff08;一&#xff09;准备工作…

【ArcGIS Pro二次开发】(7):地图(Map)的基本操作

地图是ArcGIS Pro中的基础起点&#xff0c;也是大多数工程的基础。主要用于显示表示空间数据的图层。 一、地图(Map)的基本操作示例 1、获取当前地图 var map MapView.Active.Map; 2、获取一级图层 var lys map.Layers; 用于获取地图中的单一图层&#xff0c;以及图层组…

【正点原子FPGA连载】第十六章DP彩条显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十六章DP彩条显…

什么是路由?

什么是路由&#xff1f; 介绍 **路由是指路由器从一个接口上收到数据包&#xff0c;根据数据包的目的地址进行定向并转发到另一个接口的过程。**路由发生在OSI网络参考模型中的第三层即网络层。 路由引导分组转送&#xff0c;经过一些中间的节点后&#xff0c;到它们最后的目…

六【 SpringMVC框架】

一 SpringMVC框架 目录一 SpringMVC框架1.什么是MVC2.SpringMVC概述3.SpringMVC常见开发方式4.SpringMVC执行流程5.SpringMVC核心组件介绍6.快速构建Spring MVC程序✅作者简介&#xff1a;Java-小白后端开发者 &#x1f96d;公认外号&#xff1a;球场上的黑曼巴 &#x1f34e;个…

工业三防平板可应用于各种复杂苛刻的工作环境

伴随着工业互联网技术的快速发展&#xff0c;生产制造自然环境繁杂&#xff0c;机器设备规定比较严苛。普通平板在工业场景户外场景等都比较容易出现磕碰或者出现其它因素如进水、进灰尘而引发设备故障。三防平板之所以在建筑工程的应用较为广泛&#xff0c;这与其独特的性能是…

线性数据结构:数组 Array

一、前言数组是数据结构还是数据类型&#xff1f;数组只是个名称&#xff0c;它可以描述一组操作&#xff0c;也可以命名这组操作。数组的数据操作&#xff0c;是通过 idx->val 的方式来处理。它不是具体要求内存上要存储着连续的数据才叫数组&#xff0c;而是说&#xff0c…

scratch和平使者 电子学会图形化编程scratch等级考试一级真题和答案解析2022年12月

目录 scratch和平使者 一、题目要求 1、准备工作 2、功能实现 二、案例分析

视图、游标、慢查询日志

Java知识点总结&#xff1a;想看的可以从这里进入 目录2.7、视图、游标2.7.1、视图2.7.2、游标2.7、慢查询日志2.7、视图、游标 2.7.1、视图 视图是一种虚拟存在的表&#xff0c;同真实表一样&#xff0c;视图也由列和行构成&#xff0c;它不存在于数据库中&#xff0c;是我们…

【红黑树】红黑树插入操作相关的细节和疑难拆解分析

本文就红黑树的插入操作进行细致到每一个小步骤的解析。1&#xff0c;成员变量本红黑树使用了三叉链结构&#xff0c;使用的时候尤其要记得处理指向父亲的指针。为何在节点的构造函数中&#xff0c;默认节点的颜色为红色&#xff1f;因为考虑到红黑树的性质&#xff08;对于每个…

汇编语言 标志位总结

缩写原意: Overflow of = OV NV [No Overflow] Direction df = DN (decrement) UP (increment) Interrupt if = EI (enabled) DI (disabled) Sign sf = NG (negative) PL (positive) Zero zf = ZR [zero] NZ [ Not zero] Auxiliary Carry af = AC NA [ No AC ] Parity pf = PE…

计网个人作业05

R1 链路层可以提供如下服务 链路层服务IP能否提供&#xff1f;TCP能否提供&#xff1f;流量控制✔差错检测✔✔差错纠正全双工、半双工✔ R2 不冗余 IP层有丢包的情况⼀个⻓的 TCP 报⽂段会被分⽚成多个 IP 数据报形成不同的帧&#xff0c;不同的帧可能会被不同链路传输。同…

二.线性表之顺序表

文章目录前言一.顺序表的概念及结构二.顺序表的接口实现1.顺序表的动态存储2.顺序表的初始化3.顺序表尾插#封装&#xff1a;扩容函数4.顺序表尾删5.顺序表头插6.顺序表头删7.顺序表查找8.顺序表在pos位置插入x9.顺序表删除pos位置的值10.顺序表销毁11.顺序表打印三.源1.Seqlist…

3000字,聊一聊学习低代码和学习编程到底有什么区别?

作者介绍胡艳平&#xff0c;万应低代码联合创始人、CTO&#xff0c;中国信通院低代码/无代码推进中心技术专家&#xff0c;全国信标委《低代码开发平台能力要求》起草人之一。曾有科技公司CTO问我&#xff1a;低代码是不是一种不用敲代码的编程语言&#xff1f;在不确定低代码能…

机器人学习的坚持与收获-2023

所有的机会都需要自己努力去争取&#xff0c;毕竟天会下雨下雪&#xff0c;但是不会掉馅饼。之前写过关于毕业生的一些博文。机器人工程ROS方向应用型本科毕业设计重点课题学生验收成果&#xff08;暂缓通过&#xff09;机器人工程ROS方向应用型本科毕业设计重点课题学生验收成…

如何让人机对话更自然?

来源&#xff1a;投稿 作者&#xff1a;顾相欢 编辑&#xff1a;学姐 AAAI-2022|定制对话的人设和知识背景 原文标题&#xff1a; Call for Customized Conversation: Customized Conversation Grounding Persona and Knowledge 原文链接&#xff1a; https://arxiv.org/ab…

分类预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆网络数据分类预测

分类预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆网络数据分类预测 目录分类预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆网络数据分类预测分类效果基本描述程序设计参考资料分类效果 基本描述 1.Matlab实现WOA-CNN-BiLSTM鲸鱼算法优化卷…

Ubuntu下gcc多版本管理

Ubuntu下多gcc版本的管理 开发过程中&#xff0c;在编译一个开源项目时&#xff0c;由于代码使用的c版本过高&#xff0c;而系统内置的gcc版本过低时&#xff0c;这个时候我们就需要升级gcc版本&#xff0c;但是为了避免兼容性问题&#xff0c;安装多个版本的gcc&#xff0c;然…