数据结构_顺序表中基本操作的实现_代码
学习笔记,仅供参考
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.运行结果

相关文章:
数据结构_顺序表中基本操作的实现_代码
学习笔记,仅供参考 1.头文件 2.初始化 3.增加值 4.根据下标取值 5.查找 6.插入 7.删除 8.动态增加数组的长度 9.所有代码 10.运行结果 1.头文件 //顺序表的实现——动态分配 #include<stdio.h> #include<stdlib.h> #define InitSize 10 type…...
提升SEO排名!SSL证书对SEO效果的积极影响
搜索引擎优化(SEO)作为提升网站可见度和吸引有机流量的关键策略,其规则与标准也在不断进化以适应这些变化。其中,安装SSL证书对SEO效果产生的正面影响尤为显著。以下是关于安装SSL证书如何促进SEO效果的详细分析。 一、搜索引擎的…...
JAVA 项目<果园之窗>_完结
目录 1、前言:2、视频展示:3、环境配置:4、工程代码:5、原理:6、原理补充:7、综上: 1、前言: 因为没有足够的时间这个项目用的是别人搭好的框架,在此基础上做调整并根据前…...
Vue + Vite + Axios 项目多环境以及部署前后端跨域
最近在前端多环境和部署服务器之后出现的跨域的问题。 多环境 前端多环境 Vite Axios 1.首先在项目目录下定义多环境的文件。 这里列举开发环境和发布环境 .env.development 环境 # 开发时加载// 此处为开发时接口 VITE_API_URL http://localhost:8080/api.env producti…...
Nginx+GateWay
目录 Nginx nginx如何配置负载均衡 负载均衡有哪些策略 1、轮询(默认) 2、指定权重 3、ip_hash(客户端ip绑定) 4、least_conn(最少连接) 5、fair 6、url_hash Nginx为什么效率高 gateway 使用gat…...
React中间件的概念以及常用的实现
在 React 中,中间件(Middleware)是一种在组件之间进行处理的机制,它允许你在组件渲染过程中注入一些逻辑、功能或者处理过程。中间件通常被用于在组件渲染前后执行一些操作,比如日志记录、权限验证、状态管理等。常用的…...
如何对团队成员进行六西格玛管理的培训?
在现代企业中,六西格玛管理已成为提升产品质量、减少浪费、提高生产效率的重要工具。然而,要想充分发挥六西格玛管理的优势,必须拥有一支熟练掌握这一方法的团队。因此,对团队成员进行六西格玛管理培训至关重要。具体步骤如深圳天…...
Zibll 子比文章标题加上渐变彩色文字
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、配置方式二、使用步骤1.引入库前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍…...
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
为什么不推荐 boost::asio::ip::address::from_string、boost::asio::ip::address::make_string 函数来把字符串转换为 ip 地址呢? 这是因为有平台、编译器兼容性,在 android 平台上面,使用这两个函数会导致崩溃问题,在一些 clang…...
【玩转Google云】构建安全高效的电商系统:GCP VPC 网络规划指南
在竞争激烈的电商领域,一个安全、高效且可扩展的网络基础架构至关重要。本文将深入探讨 Google Cloud Platform (GCP) 的 Virtual Private Cloud (VPC) 如何助力构建理想的电商系统。通过以一个典型的电商网站为例,我们将逐步解析 VPC 网络规划的关键步骤,包括子网划分、防火…...
【YOLO改进】换遍MMDET主干网络之Pyramid Vision Transformerv2(PVTv2)(基于MMYOLO)
Pyramid Vision Transformer v2(PVTv2) Pyramid Vision Transformer v2(PVTv2)是在PVTv1的基础上进行改进的一种深度学习模型,它同样结合了Transformer架构和金字塔结构,旨在提供更强大的特征表示和更好的…...
【漏洞复现】RuvarOA协同办公平台 WorkFlow接口处存在SQL注入
免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…...
Kubelet containerd 管理命令 ctr常用操作
镜像常用操作 1. 拉取镜像 ctr images pull docker.io/library/nginx:alpine 指定平台 --all-platforms:所有平台(amd64 、arm、386 、ppc64le 等),不加的话下载当前平台架构 --platform:指定linux/amd64平台 ctr …...
求一个B站屏蔽竖屏视频的脚本
求一个B站屏蔽竖屏视频的脚本 现在B站竖屏竖屏越来越多了,手机还好点给我一个按钮,选择不喜欢,但是我一般都用网页版看视屏,网页版不给我选择不喜欢的按钮,目测大概1/4到1/3的视频都是竖屏视频。 目前网页版唯一的进…...
用Github+HUGO搭建博客的经验教训
1. 创建两个Github仓库 一个是博客源仓库(private),用于储存所有博客源文件(Markdown文件和图片文件等)。 另一个是GitHub Pages仓库(public),用于储存由 Hugo 从Markdown 文件生成的…...
MongoDB4.4操作命令
show dbs; // 显示所有数据的列表use mvx; //如果数据库不存在,则创建数据库,否则切换到指定数据库。db; // 查看当前数据库 db.mvx.insertOne({username: root}); // 插入数据 当你插入一些文档时,MongoDB 会自动创建集 db.dropDatabase(); …...
共享旅游革命:千益畅行卡的优势揭秘
在共享经济的快速发展中,共享旅游创业已成为许多创新者和投资者关注的重点。特别是千益畅行,作为共享旅游行业的新秀,其商业模型和经营策略引起了市场的高度讨论。然而,对于这个公司是否仅仅是新一轮的市场“收割者”,…...
【doghead】mac: clion2024.1启动崩溃
doghead 是在mac 下跑各种数据的因此,在配置了环境后, 进行mac 构建 【doghead】mac构建,首先对mac的clion进行安装 mac 下安装clion2024.1 之前可能装过crack的clion教育优惠的clion跟之前的应该不同clion2024.1 在mac的新系统下崩溃google下竟然没有…...
企业合规视角下的菜鸟网络与拼多多不正当竞争案
近日,浙江省高院对备受瞩目的“菜鸟网络诉拼多多不正当竞争案”做出终审判决。该案件从2022年初发酵至今,终于以法院驳回拼多多上诉、维持一审判决而告一段落。此案不仅在法律层面引起广泛关注,更在企业合规方面提供了重要的案例参考。 根据判…...
如何在Java中处理日期和时间?介绍Java 8中的时间API
在 Java 中处理日期和时间,您可以使用 Java 8 引入的新的日期时间 API,也被称为 JSR-310,位于 java.time 包中。这个新的 API 解决了旧的 java.util.Date 类和 java.util.Calendar 类的线程安全和设计问题,并提供了一组丰富的工具…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
