数据结构实践教程-线性表选填
线性表习题集 一、单项选择题 基础概念题 线性表是具有 n(n≥0)n(n \geq 0)n(n≥0) 个( )的有限序列。 A. 表示素 B. 字符 C. 数据元素 D. 数据项 答案:C 最常用的操作是取第 i 个元素和找第 j 个元素的前驱,则线性表采用( )存储方式最节省时间。 A. 顺序表 B. 单链表 C. 双链表 D. 单循环链表 答案:A 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。 A. 顺序表 B. 双链表 C. 带头结点的双循环链表 D. 单循环链表 答案:A 用数组表示线性表的优点是( )。 A. 便于插入和删除操作 B. 便于随机存取 C. 可以动态地分配存储空间 D. 不需要占用一片相邻的存储空间 答案:B 已知顺序表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )。 A. 110 B. 108 C. 100 D. 120 答案:B 计算:100 + (5-1)×2 = 108 下列对线性表描述正确的是( )。 A. ...
硅基流动:DeepSeek R1:高性价比AI对话全流程指南
硅基流动:DeepSeek R1:高性价比AI对话全流程指南 一、注册 SiliconFlow 领取千万Tokens ▶️ 操作步骤: 点击专属链接注册:https://cloud.siliconflow.cn/i/dbaAXHGo 手机验证码登录 → 立即获得 14元赠金 新用户专享超值福利: DeepSeek-R1 满血版本 图像/视频生成权益 API 调用权限(关键) 只有通过邀请链接注册才额外获得2000万Tokens! 二、秒速获取 API 密钥 核心操作: 登录后点击左侧导航栏「API 密钥」 一键生成密钥 → 复制加密字符串 密钥安全提示: 类似 sk-3****4 请勿外泄(每个账号的API密钥 是访问 SiliconCloud 接口的凭证,具有该账户的完整权限,请妥善保管。) 三、安装神器 ChatBox ▶️ 极速配置: 下载地址:https://chatboxai.app/zh Chatbox AI官网:办公学习的AI好助手,全平台AI客户端,官方免费下载 支持 Windows/macOS/Linux 全平台 安装后打开...
PTA-学校-数据结构(两个有序序列的中位数、数组循环左移)
2-1 两个有序序列的中位数 分数 6 作者 DS课程组 单位 浙江大学 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,A**N−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0为第1个数)。 输入格式: 输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。 输出格式: 在一行中输出两个输入序列的并集序列的中位数。 输入样例1: 51 3 5 7 92 3 4 5 6 输出样例1: 4 输入样例2: 6-100 -10 1 1 1 1-50 0 2 3 4 5 输出样例2: 1 解析 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 100000typedef int ElemType;typedef ElemType * list;typedef struct{ ElemType * data; int lengh; ...
PTA-学校-数据结构(顺序表操作集、数组元素的区间删除)
1-1 顺序表操作集 分数 5 作者 陈越 单位 浙江大学 本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P ); 其中List结构定义如下: typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */}; 各个操作函数的定义为: List MakeEmpty():创建并返回一个空的线性表; Position Find( List L, ElementType X ):返回线性表中X的位置。若找不到则返回ERROR; bool Insert( List L, ElementType X, P...
数据结构实践教程-绪论
数据结构习题整理 一、单项选择题 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的()和运算的科学。 A. 约束 B. 算法 C. 关系 D. 操作 答案:C 数据结构研究的内容不包括()。 A. 逻辑结构 B. 存储结构 C. 操作和运算 D. 有穷性和健壮性 答案:D 错题分析:有穷性、健壮性是算法的特性,并非数据结构的研究内容。 以下属于逻辑结构的是()。 A. 顺序表 B. 哈希表 C. 有序表 D. 单链表 答案:C 以下与数据的存储结构无关的术语是()。 A. 循环队列 B. 链表 C. 哈希表 D. 栈 答案:D 错题分析:栈是逻辑结构(描述元素的线性关系),而循环队列(顺序存储的队列)、链表(链式存储)、哈希表(散列存储)均与存储结构直接相关。 以下哪一种术语与数据的存储结构有关()。 A. 栈 B. 队列 C. 散列表 D. 线性表 答案:C 以下哪种结构是逻辑结构,而与存储和运算无关()。 A. 顺序表 B. 散列表 C. 线性表 D. 单链表 答案:C 下列与数据元素有关的叙述中,...
博客公式和图片的设置
早上编辑矩阵时,发现本地Typora可以看到正常的矩阵,结果上传到博客上面就成这样了: 发现是在 Hexo 主题配置文件(如 Anzhiyu 主题的 _config.yml)中有配置没改,结果改了发现: 还是不对,搜了半天发现图片又炸了 接下来查了发现可能是渲染器的原因 Hexo折腾系列(六)数学公式渲染优化 - 江风引雨の小po站 下面是引用 有时候我们需要在文章里插入公式,Typora编辑器提供了很好的公式渲染支持,但这只能在本地编辑器里看到效果,而Hexo默认是不支持公式渲染的,因此很多Hexo主题都自带了katex或者mathjax组件来处理渲染数学公式。以我使用的Icarus主题为例,它本身就自带了这两款公式渲染工具,但实际使用效果却不佳,有些公式会显示不正确。究其原因,公式中的_等符号会被错误的识别为markdown语法,导致公式解析错误。本文综合了网上几种方法,得出了一个最为完美的解决方案。 出错原因 为了从根源解决问题,我们首先需要分析出错的原因。Hexo默认使用”hexo-renderer-marked”引擎渲染网页,该引擎会把一些特殊的markdow...
PTA-101h-数据结构(有序数组的插入、求链式线性表的倒数第 m 项)
实验1-1 有序数组的插入(C++版) 分数 20 作者 刘凯源 单位 华东师范大学 给定存储了n个从大到小排好序的整数,试将任一给定整数 x 插入数组中合适的位置,以保持结果依然有序。分析算法在最坏、最好情况下的时间、空间复杂度。具体来说,不妨假设整数序列存储为一个序列 array,这个序列的结构定义在下面给出,数据存放在数组 data 中。因为数组长度是有限的,我们在此假设 data 数组的最大长度为 kMaxSize。如果在执行插入之前,数组已经满了,则插入失败,返回 false;如果待插入的元素 x 已经在data中,则不要重复插入,返回 false;如果插入成功,则返回 true。 函数接口定义: bool DecrSeqInsert(ArrNode& array, int x); 其中ArrNode定义如下: class ArrNode { public: vector<int> data_; // 使用vector来动态管理数组大小 int size_; // 数组的大小 ...
矩阵的逆矩阵
一、伴随矩阵法 原理 若 nnn 阶方阵 AAA 的行列式 ∣A∣≠0|A| \neq 0∣A∣=0(即 AAA 可逆),则逆矩阵公式为: A−1=1∣A∣A∗A^{-1} = \frac{1}{|A|} A^* A−1=∣A∣1A∗ 其中 A∗A^*A∗ 是 AAA 的伴随矩阵(由 AAA 的代数余子式转置得到)。 步骤 计算行列式 ∣A∣|A|∣A∣:判断 AAA 是否可逆(若 ∣A∣=0|A| = 0∣A∣=0,则 AAA 不可逆)。 求代数余子式 AijA_{ij}Aij:对矩阵 A=(aij)A = (a_{ij})A=(aij),元素 aija_{ij}aij 的代数余子式为:Aij=(−1)i+jMijA_{ij} = (-1)^{i+j} M_{ij} Aij=(−1)i+jMij 其中 MijM_{ij}Mij 是 aija_{ij}aij 的余子式(划去 AAA 的第 iii 行、第 jjj 列后剩余子矩阵的行列式)。 构造伴随矩阵 A∗A^*A∗:将代数余子式矩阵转置,得到伴随矩阵 A∗A^*A∗(即 A∗A^*A∗ 的 (i,j)...
双链表
十一.双链表 (1)单链表VS双链表 这就有两个指针了 typedef struct DNode{ ElemType data; struct DNode *prior,*next;}DNode,*DLinklist; bool InitDLinkList(DLinklist &L){ L = (DNode *)malloc(sizeof(DNode)); if (L == NULL) return false; L -> prior = NULL; L -> next = NULL; return true;}void testDLinkList(){ DLinklist L; InitDLinklist(L);} (2)双链表的插入 bool InsertNextDNode (3)双链表的删除 (4)双链表的便历 (5)总结
PTA-101h-数据结构(在单链表 list 中查找元素 x 所在结点、在单链表 list 的第 i 个位置上插入元素 x、从单链表 list 中删除第 i 个元素)
算法2-6 在单链表 list 中查找元素 x 所在结点 分数 15 作者 陈越 单位 浙江大学 请编写程序,将 n 个整数顺次插入一个初始为空的单链表的表头。对任一给定的整数 x,查找其是否在链表中。 输入格式: 输入首先在第一行给出非负整数 n(≤20);随后一行给出 n 个 int 范围内的整数,数字间以空格分隔。最后一行给出待查找的 x,为 int 范围内的整数。 输出格式: 如果找到了 x 所在的位置,则输出该位置上链表结点的数据;否则在一行中输出 x 未找到。,其中 x 是输入的 x 的值。 输入样例 1: 51 2 3 4 54 输出样例 1: 4 输入样例 2: 51 2 3 4 50 输出样例 2: 0 未找到。 解析 #include <iostream>#include <cstdlib>using namespace std;typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,* Lin...
