数据结构的基本线性表学习

数据结构学习笔记(C语言版)2.1 线性表的定义和基本操作 线性表定义和实现 阅读详情
基本线性表定义
#define maxsize 100
typedef int elemtype;

typedef struct{
	elemtype num[maxsize];
	int length;
}List;

1.线性表的初始化
(将长度设置为0)
void Initlist(List L)
{
	L.length=0;
}

2.置空基本线性表
void clearlist(List L)
{
	L.length=0;
}

3.判断基本线性表是否为空
int emptylist(List L)
{
	if(L.length=0)
	return (1);
	else
		return(0);
}

4.求基本线性表的长度
int lengthlist(List L)
{
	return(L.length);
}

5.取数据元素
elemtype getnum(List L)
{
	if(i<0)||(i>length-1))
		printf("position not exsit");
	else
		return(L.num(i-1));
}

6.数据元素的定位
int locatnum(List L,elemtype x)
{
	int i,flag=1;
	for(i=0;i<=L.length;i++)
		if(L.num[i]==x)
		{
			flag=0;
			return(1+i);
			break;
		}
		if(flag)
			return(-1);
}
7.数据元素的插入
int insertnum(List L,elemtype x,int p)
{
	int j:
	if(L.length ==maxsize)
		printf("List overflow")
	else if (p>0)||(p>L.length))
		printf("position not exist")
	else if(L.length[p]==x)
	{
		return(-1)
;break;
	}
	else
		for(j=L.length;j>=p;j--)
	L.num[j+1]=L.num[j];
L.num[p]=x;
L.length++;
return(1);
}
8.数据元素的删除
int deletenum(List L,int p)
{
	int j;
	if(L.length==0)
		printf("List underflow")
	else if ((p<0)||(p>L.length))
	{
		printf("position not exist\n");
		retuan(-1);
	}
	else 
		for(j=p+1;j<=L.length;j++)
			L.num[j-1]=L.num[j];
		L.length--;
		return(1);
}
9.求直接前驱
priornum(List L,elemtype x)
{
	int i;
	i=locatnum(L,x)-1;
	if(i>=1)
		return(L.num[i-1]);
	else
		printf("priornum not exist")
;
}
10.求直接后继
nextnum(List L,elemtype x)
{
	int i;
	i=locatnum(L,x)+1;
	if((i>0)&&(i<L.length))
		return(L.num[i+1]);
	else
		printf("nextnum not exist")
;
}
11.合并
List catenlist(List list1,List list2)
{
	int p,j;
	if(((maxsize-list1.length)>=list2.length)&&(list2.length>0))
		for (j=0;j<=list2.length;j++)
			list1.num[list1.length+j+1]=list2.num[j];
		else
			if(((maxsize-list1.length)<list2.length)&&((maxsize-list1.length>0)&&(list.length>0))
			{
				p=maxsize-list1.length;
				for(j=0;j<=p;j++)
					list1.num[list1.length+j+1]=list2.num[j];
				
			}
			else
				printf("list not cater")
			return (&list1);
}

 

王道数据结构线性表基本操作实现 #include<iostream> using namespace std; //#define MaxSize 50 //线性表最大长度 #define InitSize 100 //表长度初始定义 typedef int ElemType; //typedef struct { // ElemType data[MaxSize]; ... 阅读详情

相关推荐

keil4.72添加GD32F10x芯片

1. 下载 GD32F10x_AddOn_V2.0.1.rar,解压缩。 2. 安装 运行GigaDevice.GD32F10x_AddOn.2.0.0.exe 安装位置 再新建工程,发现已经有GD32F10x 3. 增加的文件分析 运行GigaDevice.GD32F10x_AddOn.2.0.0.exe后,在keil文件夹种增加文件如下: ...

TrueLink的博客 2764

线性表的基本运算

线性表的基本运算包括如下内容: (1)初始化 初始化表(InitList)即构造一个空的线性表L。 初始化顺序表设置其结点数量ListLen为0,后面需要添加的数据元素将从顺序表的第一个位置存储。 示例: void SLList(SLType){ //初始化顺序表 SL.listLen = 0; //初始化为空表 } (2)计算表长 计算表长(

应无所住而生其心 4285

fdtd(时域有限差分)仿真

基础入门阶段采用 Step by step 的教学方式带着做具体的案例,在案例中学习 FDTD 应用的。的痛难点,将 FDTD 仿真引入实验当中,通过软件可视化处理有效直观的展示仿真的流程,与实验数。图像传感器,OLED 和液晶,表面计量,表面等离子体,石墨烯,太阳能电池,集成光子组件,超材。料,衍射光学和光子晶体。波,场极化,磁场,周期性结构,半球功率积分等设计解决方案,提供时域有限差分分析函数,时域。子光学传感器、热电子光探测器的光学特性研究、光学微腔宽带吸收器等多个方向的研究方法。

y2715163545的博客 5451

8-线性表的基本运算

1. 线性表的定义 线性表是具有相同特性的数据元素的一个有序序列。其表示方法如图1所示: 图1-线性表结构 线性表的长度:序列中所含元素的个数—— n , n ≥ 0,n表示线性表L中元素的个数。 空表:当n = 0时,表示线性表是一个空表,即表中不包含任何元素 前驱:ai−1ai−1a_i - 1是aiaia_i的前驱,2 ≤ i ≤ n 后继:ai+1ai+1a_i + 1是a...

网络安全 4189

ChatGPT and Claude国内使用站点

这篇博客介绍了不同的AI聊天平台和定价信息,主要对比了ChatGPT和Claude两款产品。文章列出了多个提供聊天服务的AI平台,包括RawChat、ChatGPTPlus、ChatOpens、Wildcard和2233.ai等,并提供了每个平台的网页链接和定价详情。特别关注了Claude平台,介绍了其普通账号与会员账号的不同,以及相关的定价信息。此外,还提到了一些虚拟卡定价和服务细节,为用户选择合适的AI服务提供了多种参考。

nisidjndn的博客 1万+

用STM32F103C8T6和TB6612驱动模块,从零搭建一辆能避障循迹的智能小车(附完整代码)

本文详细介绍了如何使用STM32F103C8T6和TB6612驱动模块从零搭建一辆能避障循迹的智能小车。内容涵盖硬件选型、电路设计、底层驱动配置以及智能行为算法实现,并附有完整代码示例,帮助开发者快速掌握嵌入式开发的核心技术。

weixin_42641741的博客 446

基本的线性表(顺序表)

建立一个线性表 首先了解线性表的操作: 随机储存:获取或设置指定索引处的数据元素值。(支持索引器) 插入操作:将数据元素值插入到指定索引处。 移除操作:移除线性表指定索引处的数据元素值。 查找操作:寻找具有特征值域的结点并返回其下标。 得到表长:获取线性表中实际包含数据元素的个数。 是否为空:判断线性表中是否包含数据元素。 清空操作:移除线性表中的所有数据元素。 此时需要建立一个接口或者抽象类...

T_Timer的博客 303

土地利用数据从1972到2023:如何利用Landsat和Sentinel数据构建长期变化监测模型

本文详细解析了如何利用1972至2023年的Landsat和Sentinel遥感数据构建土地利用长期变化监测模型。通过多源数据融合策略、时间序列预处理流程和深度学习算法,实现高精度的土地利用分类与变化检测,为生态评估和城市规划提供科学依据。文章还探讨了验证方法和实际应用案例,展示了长期遥感数据在环境建模中的独特价值。

weixin_28720573的博客 446

数据结构基本之线性表

2.2顺序表插入 //顺序表存储结构 #define MAXSIZE 100 typedef struct{ Type elem[MAXSIZE]; int last ; }List; #define OK 1 #define ERROR 0 //在顺序表L中第i个数据元素之前插入一个元素e。 //i的合法取值范围1<=i<=last+2 int InsList(List *L...

dujuancao11的博客 368

FreeCAD源码分析:Sketcher模块

Sketcher模块基于Part模块功能实现了特征编辑(Feature Editing)建模的功能。这类参数化建模系统主要包括几何表示、约束求解器等两大组成部分。

国产CAx(CAD/CAE/CAM)软件研发 6524

开源AI数字人DUIX:从零构建你的智能交互助手

本文详细介绍了如何利用开源AI数字人DUIX从零构建智能交互助手。文章阐述了DUIX作为开源项目的核心优势,包括低成本启动、低网络依赖和高度可定制性,并提供了从开发环境搭建、核心模块(AI模型、语音、形象)配置到个性化业务逻辑开发与最终部署的完整实践指南,帮助开发者快速掌握构建专属AI数字人的全流程。

weixin_29051811的博客 505

基本线性表

应用背景   基本线性表是信息的一种表示形式,是所有数据结构中最常用,最简单的一种数据结构。表中数据元素之间满足一种一对一的线性关系。即每个元素只有惟一的前驱(如果存在)和惟一的后继(如果存在)。 基本线性表的逻辑结构 基本线性表的定义   基本线性表是由 n (n >= 0) 个具有相同性质的数据元素组成的有限序列。记为:   List = (a0, a1, a2..., an...

weixin_30571465的博客 244

YOLOv8 置信度阈值 (conf) 和 IoU 阈值 (iou) 详解:如何平衡漏检与误检?

摘要 本文深入探讨了YOLOv8目标检测模型中两个关键参数——置信度阈值(conf)和IoU阈值(iou)的核心作用。文章从目标检测的基础概念出发,解释了置信度分数反映模型预测可靠性,IoU衡量预测框重叠程度。重点剖析了非极大值抑制(NMS)机制如何通过这两个阈值进行预测框筛选:置信度阈值作为初筛门槛,IoU阈值决定重叠框的取舍。通过生动比喻和可视化图表,阐述了合理调节这两个参数能有效平衡误检与漏检问题,是优化YOLOv8模型实际表现的重要技巧。全文以实践为导向,帮助开发者掌握成为"调参大师&qu

深耕 Vue 生态与 JS/TS 技术,聚焦组件封装、响应式原理、TS 类型设计,解析工程化配置与性能优化方案。同时分享 YOLOv8 目标检测实战、AI 大模型面试核心考点,以代码实例拆解技术实现与业务解法。 1254

数据结构与算法学习笔记——第二章:线性表-1-线性表的基本概念

线性表的基本概念

预见未来to50的专栏 176

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据结构学习笔记-线性表的基本方法

#数据结构学习笔记-线性表的基本方法 //注意:只要是需要输出的,就要声明为引用 #include <stdio.h> #include <mm_malloc.h> #define MaxSize 50 typedef char ElemType; typedef struct { /* data */ ElemType data[MaxSize]; int length; } Sqlist; //整体建立顺序表,其实就是将 a[] 复制到 L 中,注意这

m0_46272272的博客 244

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

基本数据结构学习-线性表

线性表(顺序表和链表) 什么是线性表? 在程序中将一组数据(通常同为某种类型的)数据作为整体去管理和使用,需要创建这种元素组,用变量去记录它们,传递传出函数等。一组数据中包含的元素个数可能发生改变(增加和删除元素),这样一组序列元素的组织,可以将其抽象成线性表。 一个线性表是某类元素的一个集合,还记录着元素之间的一种顺序关系,线性表是最基本的数据结构之一。 根据线性表的实际存储方式,分为两...

weixin_30677073的博客 107

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

数据结构学习(四): 线性表的基本概念

一、线性表的定义 线性表是一个具有相同特性的数据元素的有限序列 相同特性:所有元素属于同一数据类型 有限:数据元素个数是有限的,线性表中所含元素的个数叫做线性表的长度 序列:数据元素由逻辑序号唯一确定。一个线性表中可以有相同值得元素 二、线性表的运算 1. 初始化线性表 InitList(&L): 构造一个空的线性表L 2. 销毁线性表 DestroyList(&am...

WJiaJiaBest的博客 1052

嵌入式学习——数据结构基本概念和线性表

顺序结构:用一片连续内存空间存放数据——对应到C语言是数组(有序性、单一性、连续性),数组也是一种数组结构:顺序表。特点:1、访问数据方便,时间复杂度O(1) 2、插入和删除数据不方便,时间复杂度O(n)线性(一对一)——除了第一个元素和最后一个元素之外,其余元素都只有一个前驱和后继。特点:1、访问数据需要遍历O(n) 2、插入和删除方便O(1)索引结构:找——索引表(有序)——数据。4、链表的有效长度——有效节点的个数(头节点不算)算法的特性:输入、输出、有穷性、确定性、可行性。

2301_81380359的博客 752

数据结构学习笔记二 :线性表定义及基本操作

数据结构学习笔记二 :线性表定义及基本操作一、线性表的定义和基本操作(1)线性表的定义1.1 生活中的线性表1.2 线性表的定义(逻辑结构)1.3 线性表的特点1.4 线性表的基本操作 一、线性表的定义和基本操作 (1)线性表的定义 1.1 生活中的线性表 之前学习数据结构基本概念是说过,数据结构就是把我们日常生活中发生的琐碎事情信息化。将数据通过计算机反映出来,帮助我们更便捷的解决问题。 小时候, 我特别喜欢吃西四的冷面,每次去吃都需要排很长很长的队伍,从点餐需要排队,取餐也需要排队,基本上就是排队一小时

qq_37412281的博客 533

数据结构学习——线性表的结构体定义和基本操作

线性表的结构体定义 #define maxSize 100 //定义一个整型常量maxSize,值为100 1.顺序表的结构体定义 typedef struct { int data[maxSize]; int length; }Sqlist; 也可以这么定义,简洁: int A[maxSize]; int n; 2.单链表结点定义 typedef struct LNode { i...

紫藤&code的博客 2566

[XJTUSE]数据结构学习——第一章 线性表 1.1 线性表的基本概念

[XJTUSE]数据结构学习——第一章 线性表 1.1 线性表的基本概念

weixin_47692652的博客 1405

线性表是一种简单而重要的数据结构,掌握其基本概念和操作对于学习更复杂的数据结构和算法具有重要意义

**线性表(Linear List)**是一种最基本、最常用的数据结构,属于线性数据结构(元素之间存在一对一的线性关系)。它具有以下特点: - **元素有序性**:元素按顺序排列,每个元素有唯一的前驱(除第一个元素)和后继(除最后一个元素)。 - **元素同质性**:所有元素的数据类型相同。 - **长度可变性**:表长(元素个数)可以动态变化。

[Blog][Domain] programb.blog.youkuaiyun.com 1099

数据结构之线性表的定义和基本操作(学习笔记)

一、线性表的定义 线性表是一种逻辑结构,是具有相同类型的n(n>=0)个元素的有限序列 若将线性表记为上图形式,则表中a(i-1)称为a(i)的直接前驱元素,a(i+1)称为a(i)的直接后继元素。 线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时称为空表。 二、线性表的特点 1.表中的元素个数有限 2.表中元素具有逻辑上的顺序性,在序列中各个元素排序有其先后次序 3.表中元素都是数据元素,每个元素都是单个元素 4.表中元素的数据类型都相同,这意味着每个元素占有相同大小的存储空

weixin_45803046的博客 775

学习数据结构第3天(线性表的定义和基本操作)

线性表是算法题命题的重点。这类算法题实现比较容易且代码量较少,但是要求具有最优的性能(时间复杂度、空间复杂度),才能获得满分。因此应牢固掌握线性表的各种基本操作(基于两种存储结构),在平时的学习中多注重培养动手能力。另外,需要提醒的是,算法最重要的是思想。线性表是具有相同数据类型的n(n>=0)个元素的有限序列,其中n为表长,当n=0时线性表是一个空表。

研究方向:嵌入式、AI 392

数据结构学习笔记之线性表基本原理与C++实现

本文主要记述数据结构中线性表的定义和基本操作,以及线性表基于C/C++ 语言的实现:顺序表和链表的实现。顺序表是采用顺序存储实现的线性表,链表是采用链式存储的线性表。这两种实现方式的优劣如何?详细见文。

御承扬的博客 994

<数据结构学习>线性表基本操作--集合合并

集合合并问题

caswind的博客 328
上一篇: InteliiJ IDEA 的便捷使用 一、快捷键 学习自极客学院
下一篇: 数据结构学习之特殊线性表 队列
杨鼎睿
博客等级 码龄9年 7粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值