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

数据结构_顺序表中基本操作的实现_代码

学习笔记,仅供参考

1.头文件

2.初始化

3.增加值

4.根据下标取值

5.查找

6.插入

7.删除

8.动态增加数组的长度

9.所有代码

10.运行结果


1.头文件

//顺序表的实现——动态分配 
#include<stdio.h>
#include<stdlib.h>
#define InitSize 10
typedef struct{int *data;int MaxSize;int length;
}SeqList;

2.初始化

//初始化一个顺序表 
void InitList(SeqList &L){//使用malloc函数申请一片连续的存储空间L.data = (int*)malloc(InitSize*sizeof(int));L.length = 0;L.MaxSize = InitSize;
}

3.增加值

//增加值
void AddValue(SeqList &L,int num){for (int i = 0;i<num;i++){scanf("%d",&L.data[i]);L.length++;}
} 

4.根据下标取值

判断所给的下标是否越界。

//根据下标取值
bool GetElem(SeqList &L,int num,int &e){if (num<1 || num>L.length) return false;e = L.data[num-1];return true;
} 

5.查找

//查找
int LocateElem(SeqList &L,int y){for (int i = 0;i<L.length;i++){if(L.data[i] == y) return i+1;}return 0;
} 

6.插入

判断是否越界,同时L.length为前置++。

//插入
bool ListInsert(SeqList &L,int k,int kl){if (kl<1 || kl>L.length+1) return false;if (L.length == L.MaxSize) return false;for(int i = L.length-1;i>=kl-1;i--){L.data[i+1] = L.data[i];}L.data[kl-1] = k;++L.length;return true;
} 

7.删除

//删除
bool ListDelet(SeqList &L,int num){if (num<1 || num>L.length) return false;for(int i = num;i<L.length;i++){L.data[i-1] = L.data[i];}--L.length;return true;
} 

8.动态增加数组的长度

//动态增加数组的长度
void IncreaseSize(SeqList &L,int len){int *p = L.data;L.data = (int*)malloc((L.MaxSize+len)*sizeof(int));for(int i = 0;i<L.length;i++){L.data[i] = p[i];}L.MaxSize = L.MaxSize+len;free(p);
} 

9.所有代码

//顺序表的实现——动态分配 
#include<stdio.h>
#include<stdlib.h>
#define InitSize 10
typedef struct{int *data;int MaxSize;int length;
}SeqList;
//初始化一个顺序表 
void InitList(SeqList &L){//使用malloc函数申请一片连续的存储空间L.data = (int*)malloc(InitSize*sizeof(int));L.length = 0;L.MaxSize = InitSize;
}//增加值
void AddValue(SeqList &L,int num){for (int i = 0;i<num;i++){scanf("%d",&L.data[i]);L.length++;}
} //根据下标取值
bool GetElem(SeqList &L,int num,int &e){if (num<1 || num>L.length) return false;e = L.data[num-1];return true;
} //查找
int LocateElem(SeqList &L,int y){for (int i = 0;i<L.length;i++){if(L.data[i] == y) return i+1;}return 0;
} //插入
bool ListInsert(SeqList &L,int k,int kl){if (kl<1 || kl>L.length+1) return false;if (L.length == L.MaxSize) return false;for(int i = L.length-1;i>=kl-1;i--){L.data[i+1] = L.data[i];}L.data[kl-1] = k;++L.length;return true;
} //删除
bool ListDelet(SeqList &L,int num){if (num<1 || num>L.length) return false;for(int i = num;i<L.length;i++){L.data[i-1] = L.data[i];}--L.length;return true;
} //动态增加数组的长度
void IncreaseSize(SeqList &L,int len){int *p = L.data;L.data = (int*)malloc((L.MaxSize+len)*sizeof(int));for(int i = 0;i<L.length;i++){L.data[i] = p[i];}L.MaxSize = L.MaxSize+len;free(p);
} int main(){SeqList L;int n,x;printf("请输入你要增加几条数据:");InitList(L);scanf("%d",&n); //增加值 AddValue(L,n);printf("当前的数据为:") ;for(int i = 0;i<L.length;i++){printf("%d ",L.data[i]);}printf("\n");printf("当前顺序表的长度为:%d\n",L.length); //根据下标找值 int e;printf("请输入你要取第几个值:");scanf("%d",&x); if (GetElem(L,x,e)) printf("找到的第%d个值为%d\n",x,e);else printf("没有找到\n");//查找int y;printf("请输入你要查找的值:");scanf("%d",&y); if (LocateElem(L,y)) printf("%d在第%d位置上\n",y,LocateElem(L,y));else printf("没有找到\n");//插入int k,kl;printf("请输入你要插入的值以及插入的位置:");scanf("%d %d",&k,&kl); if(ListInsert(L,k,kl)) printf("现在第%d位置上的值变为了%d\n",kl,k);else printf("插入失败\n");printf("当前的数据为:") ;for(int i = 0;i<L.length;i++){printf("%d ",L.data[i]);}printf("\n");printf("当前顺序表的长度为:%d\n",L.length); //删除int sc;printf("请输入你要删除第几个数据:");scanf("%d",&sc); if(ListDelet(L,sc)) printf("删除成功\n");else printf("删除失败\n");printf("当前的数据为:") ;for(int i = 0;i<L.length;i++){printf("%d ",L.data[i]);}printf("\n");printf("当前顺序表的长度为:%d\n",L.length); //增加顺序表长度 int l;printf("请输入你要增加的长度:");scanf("%d",&l);IncreaseSize(L,l);printf("当前顺序表的最大长度为:%d\n",L.MaxSize); return 0;
}

10.运行结果

相关文章:

数据结构_顺序表中基本操作的实现_代码

学习笔记&#xff0c;仅供参考 1.头文件 2.初始化 3.增加值 4.根据下标取值 5.查找 6.插入 7.删除 8.动态增加数组的长度 9.所有代码 10.运行结果 1.头文件 //顺序表的实现——动态分配 #include<stdio.h> #include<stdlib.h> #define InitSize 10 type…...

提升SEO排名!SSL证书对SEO效果的积极影响

搜索引擎优化&#xff08;SEO&#xff09;作为提升网站可见度和吸引有机流量的关键策略&#xff0c;其规则与标准也在不断进化以适应这些变化。其中&#xff0c;安装SSL证书对SEO效果产生的正面影响尤为显著。以下是关于安装SSL证书如何促进SEO效果的详细分析。 一、搜索引擎的…...

JAVA 项目<果园之窗>_完结

目录 1、前言&#xff1a;2、视频展示&#xff1a;3、环境配置&#xff1a;4、工程代码&#xff1a;5、原理&#xff1a;6、原理补充&#xff1a;7、综上&#xff1a; 1、前言&#xff1a; 因为没有足够的时间这个项目用的是别人搭好的框架&#xff0c;在此基础上做调整并根据前…...

Vue + Vite + Axios 项目多环境以及部署前后端跨域

最近在前端多环境和部署服务器之后出现的跨域的问题。 多环境 前端多环境 Vite Axios 1.首先在项目目录下定义多环境的文件。 这里列举开发环境和发布环境 .env.development 环境 # 开发时加载// 此处为开发时接口 VITE_API_URL http://localhost:8080/api.env producti…...

Nginx+GateWay

目录 Nginx nginx如何配置负载均衡 负载均衡有哪些策略 1、轮询&#xff08;默认&#xff09; 2、指定权重 3、ip_hash&#xff08;客户端ip绑定&#xff09; 4、least_conn&#xff08;最少连接&#xff09; 5、fair 6、url_hash Nginx为什么效率高 gateway 使用gat…...

React中间件的概念以及常用的实现

在 React 中&#xff0c;中间件&#xff08;Middleware&#xff09;是一种在组件之间进行处理的机制&#xff0c;它允许你在组件渲染过程中注入一些逻辑、功能或者处理过程。中间件通常被用于在组件渲染前后执行一些操作&#xff0c;比如日志记录、权限验证、状态管理等。常用的…...

如何对团队成员进行六西格玛管理的培训?

在现代企业中&#xff0c;六西格玛管理已成为提升产品质量、减少浪费、提高生产效率的重要工具。然而&#xff0c;要想充分发挥六西格玛管理的优势&#xff0c;必须拥有一支熟练掌握这一方法的团队。因此&#xff0c;对团队成员进行六西格玛管理培训至关重要。具体步骤如深圳天…...

Zibll 子比文章标题加上渐变彩色文字

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、配置方式二、使用步骤1.引入库前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍…...

C/C++ StringToAddress(字符串转 boost::asio::ip::address)

为什么不推荐 boost::asio::ip::address::from_string、boost::asio::ip::address::make_string 函数来把字符串转换为 ip 地址呢&#xff1f; 这是因为有平台、编译器兼容性&#xff0c;在 android 平台上面&#xff0c;使用这两个函数会导致崩溃问题&#xff0c;在一些 clang…...

【玩转Google云】构建安全高效的电商系统:GCP VPC 网络规划指南

在竞争激烈的电商领域,一个安全、高效且可扩展的网络基础架构至关重要。本文将深入探讨 Google Cloud Platform (GCP) 的 Virtual Private Cloud (VPC) 如何助力构建理想的电商系统。通过以一个典型的电商网站为例,我们将逐步解析 VPC 网络规划的关键步骤,包括子网划分、防火…...

【YOLO改进】换遍MMDET主干网络之Pyramid Vision Transformerv2(PVTv2)(基于MMYOLO)

Pyramid Vision Transformer v2&#xff08;PVTv2&#xff09; Pyramid Vision Transformer v2&#xff08;PVTv2&#xff09;是在PVTv1的基础上进行改进的一种深度学习模型&#xff0c;它同样结合了Transformer架构和金字塔结构&#xff0c;旨在提供更强大的特征表示和更好的…...

【漏洞复现】RuvarOA协同办公平台 WorkFlow接口处存在SQL注入

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…...

Kubelet containerd 管理命令 ctr常用操作

镜像常用操作 1. 拉取镜像 ctr images pull docker.io/library/nginx:alpine 指定平台 --all-platforms&#xff1a;所有平台&#xff08;amd64 、arm、386 、ppc64le 等&#xff09;&#xff0c;不加的话下载当前平台架构 --platform&#xff1a;指定linux/amd64平台 ctr …...

求一个B站屏蔽竖屏视频的脚本

求一个B站屏蔽竖屏视频的脚本 现在B站竖屏竖屏越来越多了&#xff0c;手机还好点给我一个按钮&#xff0c;选择不喜欢&#xff0c;但是我一般都用网页版看视屏&#xff0c;网页版不给我选择不喜欢的按钮&#xff0c;目测大概1/4到1/3的视频都是竖屏视频。 目前网页版唯一的进…...

用Github+HUGO搭建博客的经验教训

1. 创建两个Github仓库 一个是博客源仓库&#xff08;private&#xff09;&#xff0c;用于储存所有博客源文件&#xff08;Markdown文件和图片文件等&#xff09;。 另一个是GitHub Pages仓库&#xff08;public&#xff09;&#xff0c;用于储存由 Hugo 从Markdown 文件生成的…...

MongoDB4.4操作命令

show dbs; // 显示所有数据的列表use mvx; //如果数据库不存在&#xff0c;则创建数据库&#xff0c;否则切换到指定数据库。db; // 查看当前数据库 db.mvx.insertOne({username: root}); // 插入数据 当你插入一些文档时&#xff0c;MongoDB 会自动创建集 db.dropDatabase(); …...

共享旅游革命:千益畅行卡的优势揭秘

在共享经济的快速发展中&#xff0c;共享旅游创业已成为许多创新者和投资者关注的重点。特别是千益畅行&#xff0c;作为共享旅游行业的新秀&#xff0c;其商业模型和经营策略引起了市场的高度讨论。然而&#xff0c;对于这个公司是否仅仅是新一轮的市场“收割者”&#xff0c;…...

【doghead】mac: clion2024.1启动崩溃

doghead 是在mac 下跑各种数据的因此&#xff0c;在配置了环境后, 进行mac 构建 【doghead】mac构建&#xff0c;首先对mac的clion进行安装 mac 下安装clion2024.1 之前可能装过crack的clion教育优惠的clion跟之前的应该不同clion2024.1 在mac的新系统下崩溃google下竟然没有…...

企业合规视角下的菜鸟网络与拼多多不正当竞争案

近日&#xff0c;浙江省高院对备受瞩目的“菜鸟网络诉拼多多不正当竞争案”做出终审判决。该案件从2022年初发酵至今&#xff0c;终于以法院驳回拼多多上诉、维持一审判决而告一段落。此案不仅在法律层面引起广泛关注&#xff0c;更在企业合规方面提供了重要的案例参考。 根据判…...

如何在Java中处理日期和时间?介绍Java 8中的时间API

在 Java 中处理日期和时间&#xff0c;您可以使用 Java 8 引入的新的日期时间 API&#xff0c;也被称为 JSR-310&#xff0c;位于 java.time 包中。这个新的 API 解决了旧的 java.util.Date 类和 java.util.Calendar 类的线程安全和设计问题&#xff0c;并提供了一组丰富的工具…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...