数据结构_顺序表中基本操作的实现_代码
学习笔记,仅供参考
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 类的线程安全和设计问题,并提供了一组丰富的工具…...
RMBG-2.0与LangChain集成:智能内容生成系统搭建
RMBG-2.0与LangChain集成:智能内容生成系统搭建 1. 引言 你有没有遇到过这样的情况:做电商需要批量处理商品图片,做新媒体需要快速生成内容素材,做设计需要智能抠图换背景?传统方法要么费时费力,要么效果…...
别再手动数了!用Apache POI和iText,5行代码搞定Java批量统计文档页数
5行代码实现Java批量文档页数统计:Apache POI与iText的高效实践 当你在整理年度报告、审计文档或准备印刷材料时,是否曾被成百上千份文档的页数统计折磨得焦头烂额?手动打开每个文件查看页数不仅效率低下,还容易出错。今天&#x…...
5分钟搞定电脑风扇噪音!FanControl超详细配置指南让你告别“飞机起飞“
5分钟搞定电脑风扇噪音!FanControl超详细配置指南让你告别"飞机起飞" 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcod…...
Tomcat中间件能够提供的能力
Tomcat 中间件能够提供的能力主要包括以下几个方面:运行 Java Web 应用程序:Tomcat 是一个开源的 Web 应用服务器,主要用于运行基于 Java 的 Web 应用,包括 Servlet、JSP 和 JavaBean 等组件。提供 Servlet 容器功能&…...
Nginx + FFmpeg 核心配置
Nginx FFmpeg 核心配置(2 种最实用方案)我给你最简、能直接用的配置,不用你自己改半天,分两种场景:Nginx 接收 FFmpeg 推流(直播)Nginx 调用 FFmpeg 自动转码(高清 / 标清ÿ…...
收藏!从Prompt到Harness,AI工程升级三步搞定大模型应用
本文阐述了AI工程从关注Prompt到Context再到Harness的演进过程。Prompt工程负责明确任务指令,Context工程负责提供准确有效的信息供给,而Harness工程则关注AI在系统中的可靠执行与治理。三者并非替代关系,而是嵌套协作,共同推动AI…...
3大突破:让网课学习效率提升300%的智能方案
3大突破:让网课学习效率提升300%的智能方案 【免费下载链接】auto-play-course 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/auto-play-course 在数字化学习普及的今天,职业教育学生平均每…...
Qwen2.5-VL-7B-Instruct本地部署指南:ClawdBot实现
Qwen2.5-VL-7B-Instruct本地部署指南:ClawdBot实现 1. 引言 想不想在本地电脑上搭建一个能看懂图片、理解视频的AI助手?今天咱们就来聊聊怎么把Qwen2.5-VL-7B-Instruct这个强大的视觉语言模型部署到本地环境,并且集成到ClawdBot中。 这个模…...
别再只用L1/L2了!用PyTorch实战图像修复的5种高阶损失函数(含VGG19感知损失代码)
超越L1/L2:PyTorch图像修复中5种高阶损失函数的工程实践 当你在深夜调试一个图像超分辨率模型时,发现生成的图片虽然PSNR值很高,但总感觉缺少那种"真实感"——边缘不够锐利,纹理略显模糊。这时候,L1/L2损失函…...
如何极速获取金融市场数据:5分钟实战指南
如何极速获取金融市场数据:5分钟实战指南 【免费下载链接】qstock qstock由“Python金融量化”公众号开发,试图打造成个人量化投研分析包,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(策…...
