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

顺序表的使用,对数据的增删改查

主函数: 3.c

#include "3.h"//头文件调用
SqlListptr sql_cerate()//创建顺序表函数
{SqlListptr ptr=(SqlListptr)malloc(sizeof(SqlList));//在堆区申请连续的空间if(NULL==ptr){printf("创建失败\n");return NULL;//如果没有申请成功,返回空,避免野指针}printf("创建成功\n");return ptr;//返回地址ptr->len=0;//len置为零bzero(ptr->date,sizeof(ptr->date));//对内容置零
}int emtp(SqlListptr ptr)//判空
{if(NULL==ptr){printf("判空失败\n");return -1;}return ptr->len==0;
}int full(SqlListptr ptr)//判满
{if(NULL==ptr){printf("判满失败\n");return -1;}return ptr->len==max;
}
int add(SqlListptr ptr,Date_Type  a)//增加
{if(NULL==ptr||full(ptr)){printf("增加失败\n");return 0;}ptr->date[ptr->len]=a;ptr->len++;return 1;}
void show(SqlListptr ptr)//打印
{if(NULL==ptr||emtp(ptr)){printf("输出失败\n");return ;}for(int i=0;i<ptr->len;i++){printf("%d ",ptr->date[i]);}putchar(10);
}
void  insert(SqlListptr ptr,int n,Date_Type a )//任意位置插入
{if(NULL==ptr||full(ptr)||n>ptr->len+1){printf("插入失败\n");return ;}for(int i=0;i<ptr->len-n+1;i++){ptr->date[ptr->len-i]=ptr->date[ptr->len-1-i];}ptr->date[n-1]=a;ptr->len++;
}
void anydel(SqlListptr ptr ,int n)//任意位置删除
{if(NULL==ptr||emtp(ptr)||n>ptr->len){printf("删除失败\n");return;}for(int i=0;i<ptr->len-n;i++){ptr->date[n-1+i]=ptr->date[n+i];}ptr->len--;
}void change(SqlListptr ptr ,int n,Date_Type a)//任意修改
{if(NULL==ptr||emtp(ptr)||n>ptr->len){printf("修改失败\n");return ;}ptr->date[n-1]=a;
}
void search(SqlListptr ptr,int n)//按位查找
{if(NULL==ptr||emtp(ptr)||n>ptr->len){printf("查找失败\n");return;}printf("%d\n",ptr->date[n-1]);
}int SearchValue(SqlListptr ptr,Date_Type n)//按值查找
{if(NULL==ptr||emtp(ptr)){return 0;}int flag=1;for(int i=0;i<ptr->len;i++){if(n==ptr->date[i]){return i;flag=0;}}if(flag==0){printf("没有该数据\n");}}
void deduplicate(SqlListptr ptr)//去重
{if(NULL==ptr||ptr->len<2){printf("去重失败\n");}for(int i=0;i<ptr->len;i++){for(int j=i+1;j<ptr->len;j++){if(ptr->date[i]==ptr->date[j]){anydel(ptr,j+1);j--;}}}
}
void myfree(SqlListptr *ptr)//销毁,释放内存
{if(NULL==ptr){printf("销毁失败\n");}free(*ptr);printf("销毁成功\n");ptr=NULL;
}

头文件 3.h

#ifndef __3_h__//避免重复引用
#define __3_h__
#include<stdlib.h>//堆空间申请函数头文件
#include<string.h>
#include<stdio.h>//输入输出函数头文件
#define max 30//
typedef int Date_Type;//重定义typedef struct sequence//重定义
{Date_Type date[max];int len;
}SqlList,*SqlListptr//重定义名
;
SqlListptr sql_cerate();//函数声明int emtp(SqlListptr ptr);//判空int full(SqlListptr ptr);//判满int add(SqlListptr ptr,int a);//增加void show(SqlListptr ptr);//打印void insert(SqlListptr ptr,int n,Date_Type a);//任意插void anydel(SqlListptr ptr ,int n);//任意删void change(SqlListptr ptr,int n,Date_Type a);//按位置修改void search(SqlListptr ptr,int n);//按位置查找int  SearchValue(SqlListptr ptr,Date_Type n);//按数值查找void deduplicate(SqlListptr ptr);//去重void myfree(SqlListptr *ptr);//销毁,释放内存
#endif

测试函数main:4.c

include "3.h"//头文件引用
int main()
{
SqlListptr s=sql_cerate();//函数调用add(s,10);add(s,20);//一=依次尾插add(s,30);add(s,40);add(s,30);show(s);//打印int b=0;int flag=1;while(flag)
{printf("*************************************************************\n");printf("1,任意插入\t\t2.任意删除\t\t3.任意修改\n");printf("4.按下标查找\t\t5.按数值查找\t\t6.去重\n");printf("7.退出\t\t8.销毁文件\n");printf("**************************************************************\n");printf("请输入功能:\n");scanf("%d",&b);
switch(b){
case 1:{	printf("请输入要在什么位置传值:");int n1=0;scanf("%d",&n1);insert(s,n1,60);//任意插show(s);//打印break;}
case 2:{printf("请输入要在什么位置删除:");int n2=0;scanf("%d",&n2);anydel(s,n2);//任意删show(s);//打印break;}
case 3:{printf("请输入要在什么位置修改:");int n3=0;scanf("%d",&n3);change(s,n3,66);show(s);break;}
case 4:{printf("请输入需要查哪一个:");int n4=0;scanf("%d",&n4);search(s,n4);break;}
case 5:{printf("请输入需要查哪一个:");int n5=0;int a;scanf("%d",&n5);a=SearchValue(s,n5);printf("该数据第为%d个数据\n",a);break;}
case 6:{deduplicate(s);//去重show(s);break;}
case 7:{flag=0;//置零,跳出循环}case 8:{myfree(&s);//调用销毁函数,释放内存s=NULL;}}}
return 0;}

运行截图:

相关文章:

顺序表的使用,对数据的增删改查

主函数&#xff1a; 3.c #include "3.h"//头文件调用 SqlListptr sql_cerate()//创建顺序表函数 {SqlListptr ptr(SqlListptr)malloc(sizeof(SqlList));//在堆区申请连续的空间if(NULLptr){printf("创建失败\n");return NULL;//如果没有申请成功&#xff…...

XDMA与FPGA:高效数据传输的艺术

XDMA与FPGA&#xff1a;高效数据传输的艺术 引言 在现代计算系统中&#xff0c;数据传输的效率直接影响系统的整体性能。特别是在涉及到高速数据处理的领域&#xff0c;如高性能计算&#xff08;HPC&#xff09;、实时视频处理和大数据分析等&#xff0c;如何高效地在主机与F…...

#思科模拟器通过服务配置保障无线网络安全Radius

演示拓扑图&#xff1a; 搭建拓扑时要注意&#xff1a; 只能连接它的Ethernet接口&#xff0c;不然会不通 MAC地址绑定 要求 &#xff1a;通过配置MAC地址过滤禁止非内部员工连接WiFi 打开无线路由器GUI界面&#xff0c;点开下图页面&#xff0c;配置路由器无线网络MAC地址过…...

浅谈Python库之pillow

一、pillow的介绍 Pillow是Python Imaging Library (PIL) 的一个分支&#xff0c;它是一个强大的图像处理库&#xff0c;用于打开、操作和保存许多不同图像文件格式。Pillow提供了广泛的文件格式支持、强大的图像处理能力和广泛的文件格式兼容性。它是PIL的一个友好的分支&…...

Android通过okhttp下载文件(本文案例 下载mp4到本地,并更新到相册)

使用步骤分为两步 第一步导入 okhttp3 依赖 第二步调用本文提供的 utils 第一步这里不做说明了&#xff0c;直接提供第二步复制即用 DownloadUtil 中 download 为下载文件 参数说明 这里主要看你把 destFileName 下载文件名称定义为什么后缀&#xff0c;比如我定义为 .mp4 下…...

计算机网络从诞生之初到至今的发展历程

前言 "上网"&#xff0c;相信大家对这个动词已经不再陌生&#xff0c;网 通常指的是网络&#xff1b;在 2024 年的今天&#xff0c;网络已经渗透到了每个人的生活中&#xff0c;成为其不可或缺的一部分&#xff1b;你此时此刻在看到我的博客&#xff0c;就是通过网络…...

Kudu 源码编译-aarch架构 1.17.1版本

跟着官方文档编译 第一个问题&#xff1a;在make阶段时会报的问题&#xff1a; kudu/src/kudu/util/block_bloom_filter.cc:210:3: error: ‘vst1q_u32_x2’ was not declared in this scope kudu/src/kudu/util/block_bloom_filter.cc:436:5: error: ‘vst1q_u8_x2’ was no…...

SEC_ASA 第二天作业

拓扑 按照拓扑图配置 NTP&#xff0c;Server端为 Outside路由器&#xff0c;Client端为 ASA&#xff0c;两个设备的 NTP传输使用MD5做校验。&#xff08;安全 V4 LAB考点&#xff09; 提示&#xff1a;Outside路由器作为 Server端要配置好正确的时间和时区&#xff0c;ASA防…...

操作系统(5)进程

一、定义与特点 定义&#xff1a;进程是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础。 特点&#xff1a; 动态性&#xff1a;进程是动态创建的&#xff0c;有它自身的生命周期&#xff0c;…...

6_Sass 选择器函数 --[CSS预处理]

Sass 提供了一系列的选择器函数&#xff0c;用于操作和组合CSS选择器。这些函数可以帮助你更灵活地创建样式规则&#xff0c;并且可以减少重复代码。以下是几个常用的选择器函数及其用法&#xff1a; 1. selector-append($selector1, $selector2...) selector-append($select…...

考研数学【线性代数基础box(数二)】

本文是对数学二线性代数基础进行总结&#xff0c;一些及极其简单的被省略了&#xff0c;代数的概念稀碎&#xff0c;不如高数关联性高&#xff0c;所以本文仅供参考&#xff0c;做题请从中筛选&#xff01; 本文为初稿&#xff0c;后面会根据刷题和自己的理解继续更新 第一章…...

ModbusTcp获取数据

ModbusTcp获取数据 记录一个用 pymodbus 库来获取数据的代码。 注意&#xff1a; 1.读取寄存器地址是16进制的。2.大小端转换通过代码知道原理。读取数据时&#xff0c;切记频率别太高&#xff0c;否则会出现连接被关闭问题。 from pymodbus.client.sync import ModbusTcpCli…...

java 知识点:注解及使用

注解 大多数时候&#xff0c;我们会使用注解&#xff0c;而不是自定义注解。注解给谁用&#xff1f;编译器 、给解析程序用注解不是程序的一部分&#xff0c;可以理解为注解就是一个标签 主要的作用有以下四方面&#xff1a; 生成文档&#xff0c;通过代码里标识的元数据生成…...

AI预测体彩排3采取888=3策略+和值012路+胆码+通杀1码测试12月13日升级新模型预测第156弹

经过100多期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;已到达90%的命中率&#xff0c;这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大…...

faiss数据库检索不稳定

faiss数据检索不稳定 def build_faiss_index(embeddings_vector):dim np.shape(embeddings_vector)[-1]index faiss.index_factory(dim, HNSW64, faiss.METRIC_INNER_PRODUCT)index.add(embeddings_vector)return index这个代码不稳定&#xff0c;构建的索引召回结果可能会不…...

Vue技术中参数传递:Props与事件的实践指南

在Vue.js中&#xff0c;组件间的参数传递是构建动态和交互式应用的核心。本文将深入探讨如何通过Props和事件&#xff08;$emit&#xff09;在Vue组件间进行参数传递&#xff0c;并提供代码示例。 Props传递数据 Props是Vue中组件间传递数据的一种方式&#xff0c;它允许父组…...

C++【基础】 ---- 快速入门 C++

文章目录 前言一、有关 const 区分二、有关命名空间三、有关输入和输出四、有关缺省参数四、函数重载总结 前言 本篇文章笔者将会对 C 这么语言中必须的基础部分进行简单讲解 , 同时也作为笔者自我复习使用, 这部分是初学C 的学者不可绕过的部分 , 希望学者认真理解 ,认真领会…...

Neo4j+Neovis+Vue3:前端连接数据库渲染

Neovis&#xff08;github&#xff09;&#xff1a;https://github.com/neo4j-contrib/neovis.js Neovis配置文档&#xff1a;neovis.js (neo4j-contrib.github.io) 一、安装Neo4j 参考文章&#xff1a;neo4j下载安装配置步骤-CSDN博客 二、Neovis使用 1.npm引入 ?npm ins…...

React 18

文章目录 React 18自动批处理并发特性Suspense 组件增强新 HookscreateRoot API 替代 ReactDOM.renderStrict Mode严格模式服务器端渲染改进性能优化 React 18 React 18 引入了一系列新特性和改进&#xff0c;旨在提升性能、改善用户体验&#xff0c;并简化开发流程。以下是 R…...

Java:集合(List、Map、Set)

文章目录 1. Collection集合1-1. 迭代器遍历方式1-2. 通过for循环进行遍历1-3. forEach遍历 2. List集合2-1. ArrayList底层实现原理2-2. LinkedList底层实现原理 3. Set集合3-1. HashSet 底层实现3-2. LinkedHashSet 底层实现3-3. TreeSet 4. Collection集合->总结5. Map集…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...