1 ================
2 线性表及其基本运算:
3 1。线性表(linear_list),n个数据元素的有限序列,记为:L=(a1, a2, ..., an)。
4 定义:linear_list=(D,R)
5 D={ai|ai ∈ D0, i=1,2,...,n, n>=0} D0表示相同的数据对象。
6 R={N}, N={<a(i-1), ai>|a(i-1),ai∈D0, i=1,2,3,...,n}
7
8 2.基本运算
9 void initiate(L) 初始化操作
10 int length(L) 求长度
11 elm get(L, i) 若i∈[1,n]返回一个第i个数据元素,i叫L的位序。
12 elm prior(L, elm) 求前驱
13 elm next(L, elm) 求后继
14 int locate(L, x) 返回0,或第一次出现的位序。
15 void inserte(L, i, b) 前插操作i∈[1,n+1]
16 void delete(L, i) 删除操作i∈[1,n]
17 beloon empty(L) 判空操作
18 void clear(L) 置空表操作
19
20 3.例子
21 (1)求两个集合的并,即A=A∪B
22 I.依次从Lb中取出数据d。
23 II.判度d在La中是否存在。
24 III.若不存在,则插入到La中。
25
26 //归并两个集合La, Lb
27 linear_list A∪B(linear_list La, linear_list Lb){
28 int elm_b, loc;
29 int n = length(La);
30 //在Lb中取数据,插入到La中。
31 for(int k = 0; k < length(Lb); ++k){
32 elm_b = get(Lb, k);
33 loc = locate(La, elm_b);
34 //判断loc在La中是否存在
35 if(loc = -1){
36 insert(La, n+1, elm_b);
37 }
38 ++n;
39 }
40 return La;
41 }
42
43
44 //归并两个有序线性表(不含有相同元素)
45 I.安顺序分别取La,Lb中的元素得到较小的插入Lc,La指针后移,Lb指针不动,再次
46 比较,这样反复进行插入。如果比较两个值相等,同时移动两个指针。直到某一个
47 表结束。
48 II.
49 III.
50 IV.
51 liear_list AUB(liear_list La, liear_list Lb, liear_list Lc){
52 int a = 0, b = 0, c = -1;
53 //取La|Lb中的元素插入到Lc中
54 while(a < length(La) && b < length(Lb)){
55 if(get(La, a) < get(Lb, b)){
56 insert(Lc, c+1, get(La, a));
57 a++;
58 c++;
59 }else if(get(La, a) == get(Lb, b)){
60 insert(Lc, c+1, get(La, a));
61 a++;
62 b++;
63 c++;
64 }else{
65 insert(Lc, c+1, get(Lb, b));
66 c++;
67 b++;
68 }
69 }
70 while(a < length(La)){
71 insert(Lc, c+1, get(La, a));
72 c++;
73 a++;
74 }
75 while(b < length(Lb)){
76 insert(Lc, c+1, get(Lb, b));
77 c++;
78 b++;
79 }
80 return Lc;
81 }
82 /*算法分析:语句频度:length(La)+length(Lb)-相同元素的个数
83 *时间复杂度:O(length(La)+length(Lb))
84 *
85 */
86
相关推荐
Camera | 瑞芯微rk3568平台MIPI-CSI驱动:从设备树到V4L2框架的完整链路解析
本文深入解析瑞芯微rk3568平台MIPI-CSI驱动的完整链路,从设备树配置到V4L2框架集成。详细介绍了rk3568的MIPI-CSI驱动架构、设备树关键节点布局、驱动初始化流程及数据流路径,帮助开发者快速掌握摄像头控制器的调试与优化技巧,实现稳定的视频采集系统。
数据结构--顺序表
数据结构——顺序表
从CORDIC到DDS:手把手拆解《Verilog传奇》第9章的实战项目(附可跑通的代码)
本文详细解析了如何从CORDIC算法到DDS系统的完整实现过程,基于《Verilog传奇》第9章的实战项目,提供了可运行的Verilog代码。内容涵盖CORDIC算法的硬件实现、DDS系统架构设计、完整系统集成与验证,以及实际部署中的性能调优技巧,适合数字IC和FPGA开发者深入学习。
单链表的插入操作ListInsert
单链表的插入操作思路代码 思路 1.判断这个位置是否合理 2.更改指针指向 代码 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片. /*初始条件:顺序线性表L已经存在,1<=i<=ListLength(L)*/ /*操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1 */ Status ListInsert(LinkList *L,int i,E...
用STM32手搓一个体温计
市面上大多额温计、测温计精度。
Paho Asynchronous MQTT C Client Library--MQTTAsync API
异步MQTT 客户端库for C
2、数据结构与算法 - 线性表
大纲: 1、线性表-关于顺序存储的实现(增删改查) 2、线性表-关于链式(单链表)存储的设计(增删改查与头插法/尾插法) 线性表 1、顺序表 对于非空的线性表和线性结构,其特点如下: 存在唯一的一个被称作“第一个”的数据元素; 存在唯一的一个被称作“最后一个”的数据元素; 除了第一个之外,结构中的每个数据元素均有一个前驱 除了最后一个之外,结构中的每个数据元素都有一个后续。 ...
不会路由器叠加多条宽带?看这个就够了,能让你的局域网速度更快!
通常我们在企业网络或实际项目中,随着用户的增加,一条或者几条带宽不能满足正常使用,便可以对带宽进行叠加,便于网络带度更快;通常家里有可能有两条带宽的,联通或移动的,可能都是充话费送的,但网速都不怎么样,不用可惜,用之委屈,那怎么办呢?如在迅雷上开启下载,多个资源同时下载,此时总带宽可以达到120M,也就是WAN口带宽可以叠加。多wan口路由器, 一般是有2个wan口,分别为wan1与wan2。当然也有更多的wan口的。[1] 对整个局域网来说,出口带宽数量多了,相当于总带宽上升,这样是可以起到叠加效果。
数据结构
数据结构中链表的增删改查
Unity零基础到入门 ☀️| 【UI系统学习】认识Unity引擎中几种最常用 UI系统,这一篇文章就够用了!
轻松学会 Unity 的 UGUI基础控件 使用 Unity中的UI介绍 UI即User Interface(用户界面)的简称。泛指用户的操作界面,UI设计主要指界面的样式,美观程度。而使用上,对软件的人机交互、操作逻辑、界面美观的整体设计则是同样重要的另一个门道。好的UI不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。 据我所知Unity中有两种自带的UI,一种是UGUI,一种是GUI Legacy GUI:旧版 UI,只有两个组件:文字和图片,配合鼠标事件来
基于VisionMaster实现数据实时存储至MySQL (二)
摘要:之前的分享主要聚焦于简单的一维数据实时存储。但在做缺陷检测项目时,情况往往更加复杂:一张检测图像中可能同时存在多个缺陷,每个缺陷都有一组独立的核心参数(如质心、长短轴、面积等)。如何在 MySQL 中记录这些成组出现的缺陷数据,而不只是简单的单条记录?
数据结构学习笔记——第2章 线性表
数据结构学习笔记——第2章 线性表2 线性表2.1 线性表的定义和基本操作2.1.1 线性表的定义2.1.2 线性表的基本操作2.2 线性表的顺序表示2.2.1 顺序表的定义2.2.2 顺序表上基本操作的实现2.3 线性表的链式表示2.3.1 单链表的定义2.3.2 单链表上基本操作的实现2.3.3 双链表2.3.4 循环链表2.3.5 静态链表2.3.6 顺序表和链表的比较
PSINS工具箱学习(四)捷联惯导更新算法
原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning。
线性表·数据结构的江湖修行手札2【数据结构学习笔记】
江湖味线性表学习笔记
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
《数据结构》学习笔记(2)——线性表
一:定义 线性表是零个或多个数据元素的有限序列。 线性表元素的个数n (n&amp;amp;gt;0)定义为线性表的长度,当n=0时,称为空表。 二:特点 数据元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。 数据元素个数是有限的。 数据元素的数据类型相同。 数据元素之间是一对一的关系。 三:抽象数据类型 InitList (*L):初始化橾...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
数据结构学习笔记(2)——线性表
线性表 1 定义 线性表(List): 零个或多个数据元素的有限序列 表中元素个数称为线性表的长度 线性表没有元素时,称为空表 表起始位置称表头,表结束位置称表尾 2 抽象数据类型 ADT 线性表(List) data 线性表的数据时象集合为{a1,a2...an},每个元素的类型均 为DataType。其中.除第一个元素a1外,每一个元素有且只 有一个前驱元素.除了最后一个元素an.外,每一个元素有且 只有一个后继元素。数据元素之间的关系是一对一的关系。 Operati
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
数据结构学习笔记——2.线性表及实现
二、线性表 引例:多项式的保存 方法一:顺序存储结构直接表示 用数组来保存系数,下标作为指数 缺点:当系数中含有0时,数组占用空间大且做无效运算 方法二:顺序存储结构表示非零项 用结构数组同时保存系数和指数 多项式相加过程:将两个多项式用指数递降的顺序储存,依次比较首项的幂大小,相同就相加,不同就输出指数高的,然后再依次用小的一项比较另一个多项式的第二项 方法三:链表结构存储非零项 链表中每个节点...
数据结构学习笔记(2线性表)
数据结构学习笔记 绪论 1.一些概念 数据对象:是具有相同性质的数据元素的集合,是数据的一个子集。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。 2.数据结构的三要素 (1)逻辑结构 集合:各个元素同属一个集合,别无其他集合。 线性结构:数据元素之间是一对一的关系。除了第一个元素,所有元素都有唯一前驱;除了最后一个元素,所有元素都有唯一后继。 树形结构:数据元素之间是一对多的关系。 图结构:数据元素之间是多对多的关系。 (2)数据的运算 针对于某种逻辑结构,结合实际需求,定义基本运算。 (3
数据结构学习笔记Day2-线性表
1、思考问题 顺序表用C语言应该如何表达? 2、内容 2.1 线性表的基本概念——一种逻辑结构
Java数据结构与算法2-线性表学习笔记
Java数据结构与算法2-线性表学习笔记
[数据结构]学习笔记2:线性表(2)
线性表的链式存储结构 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。 比起顺序存储结构,每个数据元素只需要存储一个位置就可以了。现在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。 也就是说除了存储其本身的信息外,还需要存储一个指示其直接后继的存储位置的信息。 我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称为指针或链。这两部分信息组成数据元素称为存储映像,称
数据结构学习笔记(2)——线性表及其实现
文章目录一、引入:多项式的表示二、线性表1.什么是线性表2.线性表的抽象数据类型描述3.线性表的顺序存储实现3.1结构定义3.2主要操作的实现3.2.1 初始化(建立空的顺序表)3.2.2查找3.2.3插入(第i个位置上插入一个值为X的新元素)3.2.4删除(删除表的第i$(1\leq i\leq n)$个位置上的元素)4.线性表的链式存储实现4.1主要思路4.2结构定义4.3主要操作实现4.3....
《数据结构》(C语言版)ch2 线性表学习笔记
一个小目录《数据结构》(C语言版)ch2 线性表学习笔记数组篇1.malloc()2.线性表宏定义3.init初始化与以前静态数组初始化区别4.函数作为参数 《数据结构》(C语言版)ch2 线性表学习笔记 数组篇 1.malloc() https://blog.youkuaiyun.com/flowing_wind/article/details/81240910 malloc()分配内存后不初始化 分配成功: 若分配成功,其返回类型是void ,表示未确定类型的指针,c,c++规定void可以强转为任何其他类型的指针
408学习笔记-数据结构-2-线性表
2、线性表是一种逻辑结构,属于总线性结构——,而不考虑元素究竟表示什么内容。除了表头元素,每个元素都有一个。除了表尾元素,每个元素都有一个。(6)线性表中的第一个元素叫。,每个元素都是单个元素。3、线性表定义:具有。
数据结构与算法学习笔记-线性表(2)
2.2线性表的实现 2.2.1线性表的顺序存储 顺序存储:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。 用这种方法存储的线性表简称顺序表 顺序存储的线性表的特点: 线性表的逻辑顺序与物理顺序一致; 数据元素之间的关系是以元素在计算机内“物理位置相邻”来体现。 设每个元素需占用/个存储单元,以所占的第一个单元的存储地址作为数据元素的存储位置。则线性表中第i+1个数据元素的存储...
算法和数据结构学习笔记(2)——线性表
线性表(List)的定义 线性表:由零个(0个元素的情况是空表)或多个数据元素组成的有限序列。 需要强调的几个关键地方: 是一个有先来后到的有限序列。 有多个元素的时候,第一个元素没有前驱,最后一个没有后继。其他元素都只有一个前驱和后继。 因为要马上要涉及线性表的抽象数据类型,所以先认识一下抽象数据类型。 抽象数据类型 先来了解一下数据类型的定义:是指一组性质相同的值的集合以
289



被折叠的 条评论
为什么被折叠?



