顺序表创建、查找、插入、删除操作集(c语言实现)

PTA 数据结构 顺序表操作集 本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typede... 阅读详情

顺序表创建、查找、插入、删除操作集(c语言实现)

刚开始学数据结构,看c语言版本的,但看书总是想不通,网上荡的资源也是错的(而且错的很离谱)就自己试着操作了一下,发现还是很棘手的。我编写的每个函数参数都是用指向结构的指针来操作,这样的可以保证改变主调函数中的实参,并且用了malloc()函数对内存块进行了分配。

ps:小白一个,新手有不足之处请见谅…

#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 100
(用typedef增强代码的可移植性)
typedef int  ElemType;
typedef int STATUS;
typedef struct Li{
	ElemType arr[MAXSIZE];   // typedef 类型 ElemType;
	int length;              //构造的表的长度 
} * sqlist;                     //新类型名*SqList,是一个指针,用于创建一个新的顺序表 

sqlist EemtyMake();
int LocateElem (sqlist L , ElemType e); 
STATUS Insert (sqlist L,int i,ElemType e);
STATUS Delete (sqlist L,int i);
int main()
{
	sqlist L = EemtyMake(); 
	printf("请输入表的长度(最大不超过100):");
	int n;
	scanf("%d",&n);
	L->length = n;
	
	printf("请输入需要定义好的元素: ");
	int i;
	for(i = 0;i<L->length;i++){
		scanf("%d",&L->arr[i]);
	} //录入元素完毕
	
	printf("你输入的表是: \n");
	for(i = 0;i<L->length;i++){
		printf("%d ",L->arr[i]);
	} 
	printf("\n");

	int num ;
	printf("请输入你要检索的元素: ") ;
	while(scanf ("%d",&num)==1){
	
		LocateElem(L,num);
		printf("请输入你要检索的元素: ") ;
	}
	
	printf("查找完毕!\n") ;
	
	
	Insert (L,2,2); 
	printf("你的顺序表是: \n");
	for(i = 0;i<L->length;i++){
		printf("%d ",L->arr[i]);
	} 
	printf("\n");
	
	Delete (L,2);
	printf("你的顺序表是: \n");
	for(i = 0;i<L->length;i++){
		printf("%d ",L->arr[i]);
	} 


	
}
/*建立一个空表*/ 
sqlist EemtyMake(){
	sqlist list;
	list = (sqlist)malloc(sizeof(struct Li));(为了让传入的形参指针初始化,并返回初始化后的指针)
	
	list->length =0; 
	return list;
}
/*检索一个元素*/ 
int LocateElem (sqlist L , ElemType e){
	int i;
	int judge = 0;
	
	for(i = 0;i<L->length;i++){
		if (L->arr[i] == e){
			judge = 1;
			printf("%d ",i+1); 
			printf("\n");
			
		}
}
	if (judge == 0){
	
		printf("你要找的元素不存在\n");
		return 0;
	}
	else return 1;
/*查找的次数平均是n/2;*/
}

/*插入一个元素*/
STATUS Insert (sqlist L,int i,ElemType e){
	//新定义一个STATUS类型,用以函数返回 0 or 1
	STATUS ERROR = 0;
	STATUS OK = 1;
	if (i<1 || i>L->length)
		return ERROR;
	else{
		int j ;
		for (j = L->length-1;j>=i-1;j--){
			L->arr[j+1] = L->arr[j];
		} 
		
		L->arr[i-1] = e;
		L->length++;
		return OK;
	} 
}
/*删除一个元素*/ 
STATUS Delete (sqlist L,int i){
	STATUS ERROR = 0;
	STATUS OK = 1;
	if (i<1 || i>L->length)
		return ERROR;
	else{
		int j ;
		for (j = i;j<=L->length-1;j++){
			L->arr[j-1] = L->arr[j];
		} 
		
		L->length--;
		return OK;
	} 
}

以下是输出结果:

在这里插入图片描述

抖音风控参数‘bd-ticket-guard-client-data’深度解析:从X.509证书到请求签名的完整链路 本文深度解析抖音风控参数‘bd-ticket-guard-client-data’的技术实现,从X.509证书体系到请求签名的完整安全链路。通过Python代码示例,揭示证书生成、签名算法及票据封装等核心机制,帮助开发者理解现代平台风控系统的多层防御架构设计。 阅读详情

相关推荐

关系代数表达式优化步骤

关系代数表达式优化步骤 本篇主要讲解怎么画查询语法树并对其优化,因为我在学关系代数的语法树的时候,在网上找不到比较详细的教法或者技巧,最后通过答案反推原理,所以想写一篇技巧来描述一下这类题的解题方法。 先上书内讲解 1、构造查询树 第一步:把用高级语言定义的查询转换为关系代数表达式 ★ 以 SELECT子向对应投影操作,以FROM字向对应笛卡尔积以 WHERE子句对应选择操作,生成原始查询树 ★ SQL语句转化为原始查询树 第二步:把关系代数表达式转换为查询树。 注: 查询树是一种表示关系代数表达式的树形结

m0_51718449的博客 7015

顺序表的基本建立,以及增删改查的相关操作(c语言描述之顺序表)

c语言描述之顺序表一: 顺序表是什么二:顺序表与链表的区别三: 顺序表的代码实现操作 一: 顺序表是什么 在c语言描述的数据结构里,顺序表是一种线性存储结构。线性存取结构又是什么? 我们可以这样理解,线性存取就是将一串具有相同特征的数据用一根线串接起来,然后再放到我们的存储之中。当然,数据结构都是抽象出来的概念,但是这种抽象的理解方式也就掩盖了底层的复杂,也就方便我们去操作内存。 二:顺序表与链表的区别 顺序表是将元素放到一块连续的内存存取空间的。在存取元素数据之前,需要申请一块足够大的内存空间,数据

jgdabc的博客 1989

Python爬虫实战:绕过B站-352风控的完整解决方案

网络爬虫技术是数据采集和自动化测试的重要工具,其核心原理是通过模拟HTTP请求获取网页数据。在实践过程中,开发者常会遇到网站反爬机制,这涉及请求指纹识别、IP行为分析等安全技术。这些风控措施的价值在于保护网站数据安全和服务器资源,广泛应用于电商、社交、内容平台等场景。针对B站等平台的-352风控错误,需要综合运用请求头伪装、会话管理、参数签名破解等技术方案。本文重点探讨如何通过构建完整的浏览器级请求头、管理Cookie会话、以及使用Playwright等浏览器自动化工具,有效解决Python爬虫在B站数据采

weixin_33912638的博客 391

数据结构代码实现(C语言)——顺序表定义、插入、删除、查找

基本操作InitList(&L):初始化表。构造一个空的线性表。用静态数组定义顺序表。由于数组的大小和空间已固定,一旦空间占满,再加入新的数据就会产生溢出。//顺序表定义——静态分配#define MaxSize 10 //定义最大长度//数组存储线性表int length;//定义表长}SqList;//初始化,初始值置为0//在C语言中不存在引用的,&表示的不是引用,仅仅是取地址符。i

weixin_44031944的博客 5436

手把手教你搞定JBI投稿:从Statement of Significance到Declaration Statement的保姆级避坑指南

本文提供了一份详细的JBI投稿指南,重点解析Statement of Significance和Declaration of Interests的撰写技巧,帮助研究者避开常见格式陷阱。通过实战案例和检查清单,确保投稿符合JBI的学术严谨性和临床转化价值要求,提升稿件通过率。

weixin_29278805的博客 617

生成式引擎优化(GEO)全景指南:技术架构、实施策略与未来趋势

生成式引擎优化(GEO)全景指南摘要 GEO(生成式引擎优化)是针对AI生成内容(如ChatGPT、文心一言等)的优化策略,通过结构化数据、权威建设与语义优化提升企业内容在AI答案中的引用优先级,实现“无点击曝光”。其核心价值在于从流量竞争转向信任构建,突破传统SEO局限。技术架构依托RAG(检索增强生成)、向量数据库及反馈学习机制,动态优化内容生成与引用逻辑。实施策略包括:部署结构化数据(如JSON-LD)、维护动态知识图谱、适配多模态内容(3D/VR)、联合权威机构发布白皮书。行业案例显示,美妆、智能家

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1450

数据结构_查找

目录1. 查找的基本概念2. 顺序查找和折半查找2.1 顺序查找2.1.1 一般线性表的顺序查找2.1.2 有序表的顺序查找2.2 折半查找2.3 分块查找2.4 相关练习3. 树型查找 3.1 二叉排序树3.1.1 二叉排序树的定义3.1.2 二叉排序树的查找3.1.3 二叉排序树的插入3.1.4 二叉排序树的构造3.1.5 二叉排序树的删除3.1.6 二叉排序树的查找效率分析3.2 平衡二叉树3.2.1 平衡二叉树的定义3.2.2 平衡二叉树的插入3.2.3 平衡二叉树的删除3.2.4 平

light_2025的博客 8194

cellchat安装

cellchat

m0_65188455的博客 5442

实现一个顺序表的建立、查找、插入和删除操作【数据结构实验报告】

文章目录一、实验目的二、算法说明三、算法实现四、测试效果 一、实验目的 1、熟悉将算法转换为程序代码的过程。 2、了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的c语言描述方法。 3、熟练掌握顺序表的基本运算:查找、插入、删除等,掌握顺序表的随机存取特性。 4、了解线性表的链式存储结构,熟练掌握线性表的链式存储结构的C语言或C++语言的描述方法。 5、熟练掌握线性链表(单链表)的基本运算:查找、插入、删除等,能在实际应用中灵活选择适当的链表结构。 二、算法说明 在本次实验中,首先程序自己建立一个空的头结点

Viewinfinitely的博客 8285

版电力系统故障录波_故障录波识图与典型故障波形分析

1、设置故障录波的目的故障录波装置是对电力系统运行状况进行监控的一种自动化设备。系统正常运行时,录波装置不启动录波,当系统发生故障时,通过启动录波装置迅速启动录波器录波,直接记录反应故障装置安装处系统故障的电气量。2、故障录波的作用(1)正确评价继电保护和自动装置的工作。(2)正确分析事故的原因并研究防止对侧。(3)发现继电保护和自动装置缺陷。(4)发现一次设备缺陷,及时消除隐患。(5)帮助寻找故...

weixin_42495661的博客 1万+

风光互补制氢系统动态仿真建模与性能分析

摘要 本文针对离网型风光互补制氢系统,建立了包含光伏阵列、风力发电机、PEM电解槽、储能电池和储氢罐的完整动态数学模型。基于MATLAB/Simulink平台开发了模块化仿真框架,设计了考虑电解槽最小运行功率约束的能量管理策略。通过典型日仿真分析表明,风光互补可有效平抑单一能源的功率波动,系统整体能量效率达58.7%,电解槽负荷跟随特性良好。提出的动态仿真方法为风光制氢系统的优化设计和运行控制提供了有效工具。 关键词:风光互补制氢;PEM电解槽;动态仿真;MATLAB/Simulink;能量管理

huanghm88的专栏 75

C++实现顺序表

c++实现顺序表中的基本操作: 1、顺序表的初始化 2、顺序表的创建 3、顺序表的插入 4、顺序表的删除 5、顺序表的查找 6、顺序表的取值 7、顺序表的清空 8、顺序表的长度 9、顺序表的判空 10、顺序表的打印 /* Project: sequence_list(数据结构-顺序表) Date: 2021/11/15 InitList(SqList &L) 参数:顺序表L 功能:初始化 时间复杂度:O(1) CreateList(SqList &L,int n) 参数:顺序表L,顺

qq_45139003的博客 1万+

小波变换(深入浅出)

小波变换

weixin_46713695的博客 3万+

6-1 顺序表操作集

其中List/* 保存线性表中最后一个元素的位置 */:创建并返回一个空的线性表;:返回线性表中X的位置。若找不到则返回ERROR;:将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false;:将位置P的元素删除并返回true。若参数P指向非法位置,则打印“POSITION P EMPTY”(其中P是参数值)并返回false。

2302_80325489的博客 1035

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PTA:6-2顺序表操作集(20分)

大一下半期数据结构 数据结构题目集 PTA:顺序表操作集(20分) 本题要求实现顺序表的操作集。 函数接口定义 List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); ...

teletubbies的博客 6652

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

6-2 顺序表操作集(PTA)

6-2 顺序表操作集 本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef i...

purpleai的博客 2356

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【数据结构】PTA 顺序表操作集 C语言

其中List/* 保存线性表中最后一个元素的位置 */:创建并返回一个空的线性表;:返回线性表中X的位置。若找不到则返回ERROR;:将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false;:将位置P的元素删除并返回true。若参数P指向非法位置,则打印“POSITION P EMPTY”(其中P是参数值)并返回false。

2302_79596028的博客 857

6-2 顺序表操作集(20 point(s))

6-2 顺序表操作集(20 point(s)) 本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P );

codeswarrior的博客 2万+

(C语言)实现顺序表的操作集(增删改查)

(C语言)实现顺序表的操作集(增删改查) 各个操作函数的定义为: List MakeEmpty():创建并返回一个空的线性表; int Find( List L, ElementType X ):返回线性表中X的位置。若找不到则返回ERROR; bool Insert( List L, ElementType X, int P ):将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false; bool D

HYK_DJ5201314的博客 643

6-1 顺序表操作集 (20 分)

6-1 顺序表操作集 (20 分) 本题要求实现顺序表的操作集。 函数接口定义: 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 LN

HHLucifer的博客 220

2025-03-26 学习记录--C/C++-PTA 6-2 顺序表操作集

C语言-PTA 6-2 顺序表操作集

weixin_48850734的博客 395

【HBU】1-1 顺序表操作集 (20分)(两个代码)

本题要求实现顺序表的操作集。 就不写题目要求什么的了,这道题之前就做过。。一会也放上代码,学了c++,再写c真别扭啊啊啊。注意插入和删除的位置合法判断即可,Last代表最后一个元素的位置,从样例也可以看出,下标从0开始,所以最大不能超过MAXSIZE-1 这次写的 List MakeEmpty(){ List list; list = (List)malloc(sizeof(struct LNode)); list->Last = -1; return list; }

xxxibgdrgn博客 441

PTA数据结构与算法题目集(中文) 6-2 顺序表操作集 (20 分)

本题要求实现顺序表的操作集。 函数接口定义: 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...

好学者的博客 610

PTA6-2 顺序表操作集 (20分)

PTA6-2 顺序表操作集 (20分) 函数接口定义: 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 Po...

Soulstrong的博客 1037

4-2 顺序表操作集 (20分) PTA

本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef in

点滴初学者的博客 1103

PTA-数据结构与算法题目集(中文)6-2顺序表操作集

题目链接 题目描述: 本题要求实现顺序表的操作集。 函数接口定义: 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; str

weixin_48344534的博客 1202
下一篇: 真正的c语言版本的有序顺序表的合并
mAN_DOm
博客等级 码龄8年 13粉丝 16原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值