当前位置: 首页 > news >正文

顺序表增删改查(c语言)

main函数:

 #include <stdio.h>#include "./seq.h"int main(int argc, const char *argv[]){SeqList* list =  create_seqList();insert_seqList(list,10);insert_seqList(list,100);insert_seqList(list,12);insert_seqList(list,23);show_seqList(list);int res;res=delete_seqList(list);printf("%d\n",res);                                 insert_byid_seqList(list,66,1);show_seqList(list);int n=delete_byid_seqList(list,2);printf("被删除的数据为%d\n",n);show_seqList(list);updata_byid(list,1);show_seqList(list);int x=search_byid(list,1);printf("查找的数据为%d\n",x);int idx=selectidx_bydata_seqList(list,10);printf("%d\n",idx);return 0;}

函数部分:

  1 #include <stdio.h>                                                                                                                                    2 #include <stdlib.h>                                                                                                                                   3 #include "./seq.h"                                                                                                                                    4                                                                                                                                                       5 /*                                                                                                                                                    6  * function:    创建顺序表                                                                                                                            7  * @param[ in]                                                                                                                                        8  * @param[out]                                                                                                                                        9  * @return                                                                                                                                            10  */                                                                                                                                                   11 //创建顺序表                                                                                                                                          12 SeqList* create_seqList()                                                                                                                             13 {                                                                                                                                                     14     SeqList *list=(SeqList *)malloc(sizeof(SeqList));//申请对空间在函数结束后不会被销毁                                                               15     if(NULL == list)//定义顺序表是否为空                                                                                                              16     {                                                                                                                                                 17         return NULL;                                                                                                                                  18     }                                                                                                                                                 19     list->pos=0;//初始化记录下标位置为0                                                                                                               20                                                                                                                                                       21     return list;                                                                                                                                      22 }                                                                                                                                                     23 //在顺序表尾部插入数据                                                                                                                                24 void insert_seqList(SeqList * list,datatype num)                                                                                                      25 {                                                                                                                                                     26     if(list->pos >= N)          //判断顺序表是否满了                                                                                                  27     {                                                                                                                                                 28         printf("顺序表已满,插入失败!\n");                                                                                                           29         return;                                                                                                                                       30     }                                                                                                                                                 31     list->data[list->pos] = num;//将要插入的数据给到末尾为的pos下标                                                                                   32     (list->pos)++;              //将pos后移                                                                                                           33     printf("插入成功!\n");                                                                                                                           34     return;                                                                                                                                           35 }                                                                                                                                                     36 //根据下标插入数据                                                                                                                                    37 void insert_byid_seqList(SeqList *list,datatype num,int n)//n为需要插入数据的下标                                                                     38 {                                                                                                                                                     39     int i;                                                                                                                                            40     if(n<0||n>list->pos)                                                                                                                              41     {                                                                                                                                                 42         printf("插入的位置非法!\n");                                                                                                                 43     }                                                                                                                                                 44                                                                                                                                                       45     if(n>list->pos || list->pos>=N)                                                                                                                   46     {                                                                                                                                                 47         printf("顺序表已满,插入失败!\n");                                                                                                           48         return;                                                                                                                                       49     }                                                                                                                                                 50         for(i=list->pos;i>n;i--)//先将顺序表中的数据后移                                                                                              51     {                                                                                                                                                 52         list->data[i]=list->data[i-1];                                                                                                                53     }                                                                                                                                                 54     list->data[n] = num;   //将目标数据赋给目标下标                                                                                                   55     (list->pos)++;         //将pos的值+1                                                                                                              56     printf("插入成功!\n");                                                                                                                           57                                                                                                                                                       58 }                                                                                                                                                     59 //根据下标删除数据                                                                                                                                    60 datatype delete_byid_seqList(SeqList* list,int x)                                                                                                     61 {                                                                                                                                                     62     int i;                                                                                                                                            63     datatype num;//先定义一个变量用来存储要被删除的数据,以免被覆盖                                                                                   64     if(x<0 || x>=list->pos)                                                                                                                           65     {                                                                                                                                                 66         printf("删除失败!\n");                                                                                                                       67     }                                                                                                                                                 68     num=list->data[x];                                                                                                                                69     for(i=x;i<list->pos-1;i++)//先找到要删除的下标位置,将后面的数据往前移                                                                            70     {                                                                                                                                                 71         list->data[i]=list->data[i+1];                                                                                                                72     }                                                                                                                                                 73     list->pos--;//数据被删除了,所以要将pos-1                                                                                                         74                                                                                                                                                       75     return num;                                                                                                                                       76 }                                                                                                                                                     77 //在顺序表尾部删除数据                                                                                                                                78 datatype delete_seqList(SeqList* list)                                                                                                                79 {                                                                                                                                                     80     if(list->pos<=0)                                                                                                                                  81     {                                                                                                                                                 82     printf("顺序表中没有数据,删除失败!\n");                                                                                                         83     }                                                                                                                                                 84     list->pos--;                                                                                                                                      85     return list->data[list->pos];                                                                                                                     86 }                                                                                                                                                     87 //根据下标修改数据                                                                                                                                    88 void updata_byid(SeqList* list,int x)                                                                                                                 89 {                                                                                                                                                     90     if(x>=list->pos||x<0)                                                                                                                             91     {                                                                                                                                                 92         printf("该下标非法,修改失败!\n");                                                                                                           93         return;                                                                                                                                       94     }                                                                                                                                                 95     printf("请输入数据>>>\n");                                                                                                                        96     scanf("%d",&list->data[x]);                                                                                                                       97     return;                                                                                                                                           98 }                                                                                                                                                     99 datatype search_byid(SeqList* list,int x)                                                                                                             
100 {                                                                                                                                                     
101     if(x>=list->pos||x<0)                                                                                                                             
102     {                                                                                                                                                 
103         printf("该下标越界!\n");                                                                                                                     
104     }                                                                                                                                                 
105     return list->data[x];                                                                                                                             
106 }                                                                                                                                                     
107 /*                                                                                                                                                    
108  * function:                                                                                                                                          
109  * @param [ in]                                                                                                                                       
110  * @param [out]                                                                                                                                       
111  * @return                                                                                                                                            
112  */                                                                                                                                                   
113 //遍历顺序表                                                                                                                                          
114 void show_seqList(SeqList* list)                                                                                                                      
115 {                                                                                                                                                     
116     int i;                                                                                                                                            
117     if(0==list->pos)                                                                                                                                  
118     {                                                                                                                                                 
119         printf("顺序表中没有数据!\n");                                                                                                               
120     }                                                                                                                                                 
121     for(i=0;i<list->pos;i++)                                                                                                                          
122     {                                                                                                                                                 
123         printf("%d ",list->data[i]);                                                                                                                  
124     }                                                                                                                                                 
125     putchar(10);                                                                                                                                      
126     return;                                                                                                                                           
127 }                                                                                                                                                     
128 void selectdata_seqList(SeqList* list,datatype oldNum,datatype newNum)                                                                                
129 {                                                                                                                                                     
130     int i=0;                                                                                                                                          
131     for(i=0;i<list->pos;i++)                                                                                                                          
132     {                                                                                                                                                 
133         if(list->data[oldNum]==list->data[i])                                                                                                         
134         {                                                                                                                                             
135             list->data[newNum]=list->data[oldNum];                                                                                                    
136         }                                                                                                                                             
137     }                                                                                                                                                 
138     printf("更新完成!\n");                                                                                                                           
139     return;                                                                                                                                           
140                                                                                                                                                       
141 }                                                                                                                                                     
142 int  selectidx_bydata_seqList(SeqList* list,datatype num)                                                                                             
143 {                                                                                                                                                     
144     int i=0;                                                                                                                                          
145     for(i=0;i<list->pos;i++)                                                                                                                          
146     {                                                                                                                                                 
147         if(num==list->data[i])                                                                                                                        
148         {                                                                                                                                             
149             return i;                                                                                                                                 
150         }                                                                                                                                             
151     }                                                                                                                                                 
152     return -1;                                                                                                                                        
153 }                                                                                                                                                     

头文件:

 #ifndef __FUNC_H__                                                              #define __FUNC_H_                                                               #define N 100  //顺序表的容量                                                   typedef int datatype;                                                           typedef struct//由于需要同时返回顺序表及其下标位置,所以定义一个结构体          {                                                                               datatype data[N];    //定义一个顺序表                                       int pos;        //记录下标位置                                              }SeqList;                                                                       SeqList* create_seqList();                                                      void insert_seqList(SeqList* list,datatype num);                                void show_seqList(SeqList* list);                                               datatype delete_seqList(SeqList* list);                                         void insert_byid_seqList(SeqList *list,datatype num,int n);                     datatype delete_byid_seqList(SeqList* list,int x);                              void updata_byid(SeqList* list,int x);                                          datatype search_byid(SeqList* list,int x);                                      int  selectidx_bydata_seqList(SeqList* list,datatype num);                      #endif                                                                          

相关文章:

顺序表增删改查(c语言)

main函数&#xff1a; #include <stdio.h>#include "./seq.h"int main(int argc, const char *argv[]){SeqList* list create_seqList();insert_seqList(list,10);insert_seqList(list,100);insert_seqList(list,12);insert_seqList(list,23);show_seqList(l…...

MyBatis Plus中的动态表名实践

随着数据库应用的不断发展&#xff0c;面对复杂多变的业务需求&#xff0c;动态表名的处理变得愈发重要。在 MyBatis Plus&#xff08;以下简称 MP&#xff09;这一优秀的基于 MyBatis 的增强工具的支持下&#xff0c;我们可以更便捷地应对动态表名的挑战。本文将深入研究如何在…...

JAVA IDEA 项目打包为 jar 包详解

前言 如下简单 maven 项目&#xff0c;现在 maven 项目比较流行&#xff0c;你还没用过就OUT了。需要打包jar 先设置&#xff1a;点击 File > Project Structure > Artifacts > 点击加号 > 选择JAR > 选择From modules with dependencies 一、将所有依赖和模…...

概率基础——几何分布

概率基础——几何分布 介绍 在统计学中&#xff0c;几何分布是描述了在一系列独立同分布的伯努利试验中&#xff0c;第一次成功所需的试验次数的概率分布。在连续抛掷硬币的试验中&#xff0c;每次抛掷结果为正面向上的概率为 p p p&#xff0c;反面向上的概率为 1 − p 1-p …...

JavaScript的内存管理与垃圾回收

前言 JavaScript提供了高效的内存管理机制&#xff0c;它的垃圾回收功能是自动的。在我们创建新对象、函数、原始类型和变量时&#xff0c;所有这些编程元素都会占用内存。那么JavaScript是如何管理这些元素并在它们不再使用时清理它们的呢&#xff1f; 在本节中&#xff0c;…...

Neo4j导入数据之JAVA JDBC

目录结构 前言设置neo4j外部访问代码整理maven 依赖java 代码 参考链接 前言 公司需要获取neo4j数据库内容进行数据筛查&#xff0c;neo4j数据库咱也是头一次基础&#xff0c;辛辛苦苦安装好整理了安装neo4j的步骤&#xff0c;如今又遇到数据不知道怎么创建&#xff0c;关关难…...

LeetCode 2878.获取DataFrame的大小

DataFrame players: ------------------- | Column Name | Type | ------------------- | player_id | int | | name | object | | age | int | | position | object | | … | … | ------------------- 编写一个解决方案&#xff0c;计算并显示 players 的 行数和列数。 将结…...

索引失效的 12 种情况

目录 一、未使用索引字段进行查询 二、索引列使用了函数或表达式 三、使用了不等于&#xff08;! 或 <>&#xff09;操作符 四、LIKE 操作符的模糊查询 五、对索引列进行了数据类型转换 六、使用 OR 连接多个条件 七、表中数据量较少 八、索引列上存在大量重复值…...

Spring及工厂模式概述

文章目录 Spring 身世什么是 Spring什么是设计模式工厂设计模式什么是工厂设计模式简单的工厂设计模式通用的工厂设计 总结 在 Spring 框架出现之前&#xff0c;Java 开发者使用的主要是传统的 Java EE&#xff08;Java Enterprise Edition&#xff09;平台。Java EE 是一套用于…...

运维SRE-19 网站Web中间件服务-http-nginx

Ans自动化流程 1.网站集群核心协议&#xff1a;HTTP 1.1概述 web服务&#xff1a;网站服务&#xff0c;网站协议即可. 协议&#xff1a;http协议,https协议 服务&#xff1a;Nginx服务&#xff0c;Tengine服务....1.2 HTTP协议 http超文本传输协议&#xff0c;负责数据在网站…...

C语言—自定义(构造)类型

2.20&#xff0c;17.56 1.只有当我们使用结构体类型定义变量/结构体数组,系统才会为结构体的成员分配内存空间,用于存储对应类型的数据 2.strct 结构体 一起作为结构体类型标识符 嘿嘿暂时先这样&#xff0c;我会回来改的1、定义一个表示公交线路的结构体&#xff0c;要…...

ArcgisForJS如何实现添加含图片样式的点要素?

文章目录 0.引言1.加载底图2.获取点要素的坐标3.添加含图片样式的几何要素4.完整实现 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。本文在ArcGIS For JavaScript中使用Graphic对象来创建包含图片样式的点要素。 …...

C#之WPF学习之路(2)

目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员和功能 控件的父类 在 WPF (Windo…...

胶原抗体诱导小鼠关节炎模型

胶原诱导性关节炎小鼠(CIA)作为人类类风湿关节炎模型应用广泛,但CIA引起的关节炎起病比较缓慢&#xff0c;造模周期较长&#xff0c;一般为6-8周(1-12)。Chondrex公司已开发出单一种单克隆抗体合剂诱导的小鼠关节炎模型&#xff08;CAIA&#xff09;&#xff0c;明显缩短了造模…...

集百家所长的开放世界游戏,艾尔莎H311-PRO带你玩转《幻兽帕鲁》

随着近几年开放世界游戏热潮的兴起&#xff0c;如今这类游戏可以说是像雨后春笋般不断推出&#xff0c;比如《幻兽帕鲁》就是近期非常火热的一个代表&#xff0c;它不仅集合了生存、建造、宠物养成等多种元素&#xff0c;而且可爱的卡通画风格更是老少皆宜。那么&#xff0c;这…...

机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器

旋转变压器 旋转变压器是一种输出电压随转角变化的检测装置&#xff0c;是用来检测角位移的&#xff0c;其基本结构与交流绕线式异步电动机相似&#xff0c;由定子和转子组成。 旋转变压器的原理如图1所示&#xff0c;定子相当于变压器的一次侧&#xff0c;有两组在空间位置上…...

深度学习的学习笔记帖子2

人脸数据集的介绍&#xff1a; https://zhuanlan.zhihu.com/p/362356480 https://blog.csdn.net/bjbz_cxy/article/details/122210641 CASIAWebFace人脸数据集等的github&#xff1a; https://github.com/deepinsight/insightface/blob/master/recognition/datasets/README.md…...

【机器学习学习脉络】

机器学习学习脉络 基础知识 数学基础 线性代数概率论与数理统计微积分最优化理论 编程基础 Python编程语言数据结构与算法软件工程原则 计算机科学基础 操作系统网络通信数据库系统 机器学习概论 定义与发展历程机器学习的主要任务和应用领域基本术语和概念 监督学习 线…...

golang命令行工具gtcli,实现了完美集成与结构化的gin脚手架,gin-restful-api开箱即用

关于gtools golang非常奈斯&#xff0c;gin作为web框架也非常奈斯&#xff0c;但我们在开发过程中&#xff0c;前期搭建会花费大量的时间&#xff0c;且还不尽人意。 为此我集成了gin-restful-api的模板gin-layout&#xff0c;还有脚手架一键生成项目。 集成相关 ginviperz…...

Qt 事件

1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件&#xff0c;它继承自QEvent类。 2. 事件和信号 事件与信号并不相同&#xff0c;比如我们使用鼠标点击了一下界面上的按钮&#xff0c;那么就会产生…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...