顺序表练习

顺序表练习

图解插入与删除,详见相关内容:顺序存储结构的插入与删除

//顺序表的定义、创建、插入、删除、查找
//定义:结构体中数组、表长
//创建:输入元素,表长++
//插入:判断表是否已满、判断位序合法性
//插入位序k(对应下标k-1)从k-1到length-1元素依次后移,插入元素,表长+1
//删除:判断表是否已空、判断位序合法性
//删除位序k(对应下标k-1),元素赋值给e,从length-1到k依次前移,表长-1
//查找:元素内容,下标从0开始检查元素是否等于当前元素,若等则返回位序(下标+1)
#include<stdio.h>
#define MAXSIZE 10
#define OK 1
#define ERROR 0
typedef int Status;
typedef struct{int data[MAXSIZE];int length;
}SqList;
//初始化
void InitSqList(SqList *L){L->data[MAXSIZE]=0;L->length=0;
}
//创建
void CreateSqList(SqList *L,int n){for (size_t i = 0; i < n; i++){printf("输入第%d个元素:",i+1);scanf("%d",&L->data[i]);L->length++;}
}
//插入
Status InsertElem(SqList *L,int k,int e){int i;//下标//判断表满、位序合法性if (L->length==MAXSIZE || k<1 || k> L->length){return ERROR;}//元素后移for (int i = L->length-1; i >= k-1; i--){L->data[i+1]=L->data[i];}L->data[k-1]=e;L->length++;return OK;
}
//删除
Status DeleteElem(SqList *L,int k){int i;//下标//判断表空、位序合法性if (L->length==0 || k<1 || k> L->length){return ERROR;}//元素前移覆盖要删除的元素for (i = k; i <= L->length-1; i++){L->data[i-1]=L->data[i];}L->length--;return OK;
}
//查找
int LocateElem(SqList *L,int e){int i;//下标for (i = 0; i < L->length; i++){if (L->data[i]==e){return i+1;//返回位序}}return 0;
}
//打印
Status PrintList(SqList *L){//判断表空、位序合法性if (L->length==0){return ERROR;}for (size_t i = 0; i < L->length; i++){printf("%d ",L->data[i]);}return OK;
}
int main(){int n,e,k;SqList L;InitSqList(&L);printf("输入表长:");scanf("%d",&n);CreateSqList(&L,n);PrintList(&L);printf("\n输入插入位序及元素:");scanf("%d%d",&k,&e);InsertElem(&L,k,e);printf("插入元素后:");PrintList(&L);printf("\n输入要删除的元素的位序:");scanf("%d",&k);DeleteElem(&L,k);PrintList(&L);printf("\n输入要查询的元素:");scanf("%d",&e);k=LocateElem(&L,e);printf("所查询的元素位序为:%d",k);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Amazon】跨AWS账号资源授权存取访问

文章目录 一、实验框架图二、实验过程说明三、实验演示过程1、在A账号中创建S3存储桶2、在A账号创建S3存储桶访问策略3、在A账号创建信任开发账号的角色4、在B账号为用户添加内联策略5、在B账号中切换角色&#xff0c;以访问A账号中的S3资源 四、实验总结 一、实验框架图 本次…

Python通过pyecharts对爬虫房地产数据进行数据可视化分析(一)

一、背景 对Python通过代理使用多线程爬取安居客二手房数据&#xff08;二&#xff09;中爬取的房地产数据进行数据分析与可视化展示 我们爬取到的房产数据&#xff0c;主要是武汉二手房的房源信息&#xff0c;主要包括了待售房源的户型、面积、朝向、楼层、建筑年份、小区名称…

华为数通方向HCIP-DataCom H12-831题库(多选题:101-120)

第101题 LSR对收到的标签进行保留,且保留方式有多种,那么以下关于LDP标签保留一自由方式的说法 A、保留邻居发送来的所有标签 B、需要更多的内存和标签空间 C、只保留来自下一跳邻居的标签,丢弃所有非下一跳铃邻居发来的标签 D、节省内存和标签空间 E、当IP路由收敛、下一跳…

客户端性能测试基础知识

目录 1、客户端性能 1.1、客户端性能基础知识 2、客户端性能工具介绍与环境搭建 2.1.1、perfdog的使用 2.1.2、renderdoc的使用 1、客户端性能 1.1、客户端性能基础知识 客户端性能知识这里对2D和3D类游戏进行展开进行&#xff0c;讲述的有内存、CPU、GPU、帧率这几个模块…

【计算机网络】分层模型和应用协议

网络分层模型和应用协议 1. 分层模型 1.1 五层网络模型 网络要解决的问题是&#xff1a;两个程序之间如何交换数据。 四层&#xff1f;五层&#xff1f;七层&#xff1f; 2. 应用层协议 2.1 URL URL&#xff08;uniform resource locator&#xff0c;统一资源定位符&#…

深入vue2.0源码系列:生命周期的实现

前言 在Vue.js 2.0中&#xff0c;组件的生命周期函数分为8个阶段&#xff0c;分别是&#xff1a; beforeCreate&#xff1a;组件实例刚被创建&#xff0c;但是数据和事件监听还未被初始化。created&#xff1a;组件实例已经被创建&#xff0c;并且数据和事件监听已经初始化完…

Android 13.0 rom定制专栏系列解读

一.前言 在从事android系统rom定制化的这几年里&#xff0c;经历了坎坎坷坷&#xff0c;开发过好几种类型的产品&#xff0c;也随着google对android系统的更新加快&#xff0c;也需要跟随上时代的进步&#xff0c;所以需要把平时工作中遇到的问题总结出来&#xff0c;及时做好…

leetCode 136.只出现一次的数字 + 位运算

136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算…

保护生产中 Node.js 应用程序安全的 15 项最佳实践

在后端开发方面&#xff0c;Node.js 是开发人员最喜欢的技术之一。它的受欢迎程度不断上升&#xff0c;现已成为在线攻击的主要目标之一。这就是为什么保护 Node.js 免受漏洞和威胁至关重要。 在本指南中&#xff0c;您将看到为生产设计安全 Node.js 应用程序架构的 15 种最佳…

Three.js 开发引擎的特点

Three.js 是一个流行的开源 3D 游戏和图形引擎&#xff0c;用于在 Web 浏览器中创建高质量的三维图形和互动内容。以下是 Three.js 的主要特点和适用场合&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作…

如何处理不稳定的自动化测试?

abluecolor 在解决这个问题之前&#xff0c;请停止编写更多测试&#xff0c;因为这将花费你较高的测试维护成本。你需要尽快行动起来对不稳定的原因进行深入研究&#xff0c;找到不稳定的根因&#xff0c;并且尝试在流程、环境和代码方面做一些优化工作解决它。 MasterKindew…

数字频带传输——二进制数字调制及MATLAB仿真

文章目录 前言一、OOK1、表达式2、功率谱密度3、调制框图 二、2PSK1、表达式2、功率谱密度 三、2FSK1、表达式 四、MATLAB 仿真1、MATLAB 源码2、仿真及结果①、输入信号及频谱图②、2ASK 调制③、2PSK 调制④、2FSK 调制⑤、随机相位 2FSK 调制 五、资源自取 前言 数字频带信…

一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

大家好&#xff0c;我是python222小锋老师。前段时间卷了一套 Python3零基础7天入门实战 以及1小时掌握Python操作Mysql数据库之pymysql模块技术 近日锋哥又卷了一波课程&#xff0c;python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium&#xff0c;文字版视频版。1…

vscode C++项目相对路径的问题

如图所示的项目目录结构 如果要在main.cpp里用相对路径保存一个txt文件 std::ofstream file("./tree_model/my_file.txt");if (file.is_open()) {file << "This is a sample text.\n";file.close();std::cout << "File saved in the mode…

什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(2)

参考视频&#xff1a;https://www.youtube.com/watch?vE5Z7FQp7AQQ&listPLuhqtP7jdD8CD6rOWy20INGM44kULvrHu 视频4&#xff1a;CNN 中 stride 的概念 如上图&#xff0c;stride 其实就是 ”步伐“ 的概念。 默认情况下&#xff0c;滑动窗口一次移动一步。而当 stride …

【vue】vue前端、生产(线上)环境请求unicloud云服务空间axios报错

目录 原因总结&#xff1a;借助Nginx使得axios可跨域请求 原因 使用axios的时候&#xff0c;如果是开发环境下&#xff0c;WebStorm&#xff08;IDEA&#xff09;会自带跨域功能&#xff0c;说白了就是不用考虑跨域的事情了。但是在生产环境下&#xff0c;vue前端编译成静态文…

香港第一金:重磅事件数据利率决议之前 黄金作出调整修正

香港第一金基本面分析&#xff1a; 中国纸黄金交易通显示&#xff0c;全球最大黄金上市交易基金(ETF)截至10月31日持仓量为859.49吨&#xff0c;较上日减持2.31吨&#xff0c;本月止净减持14.15吨。 自10月7日哈马斯袭击以色列以来&#xff0c;贵金属市场成为避险资产需求上升…

C/C++中指针的加一能力

一.再日常使用C语言的时候&#xff0c;我们会用到数组&#xff0c;指针。这里就会牵扯到指针以及指针的解引用和加一能力的问题。 1.普通指针的加一能力 int a0;int *p&a;cout<<*(p1); 在指针p加一后&#xff0c;因为变量a是int型&#xff0c;所以在加一之后就到a变量…

开发语言工具编程系统化教程入门和初级专辑课程上线

开发语言工具编程系统化教程入门和初级专辑课程上线 学习编程捷径&#xff1a;&#xff08;不论是正在学习编程的大学生&#xff0c;还是IT人士或者是编程爱好者&#xff0c;在学习编程的过程中用正确的学习方法 可以达到事半功倍的效果。对于初学者&#xff0c;可以通过下面…

图神经网络论文笔记(一)——北邮:基于学习解纠缠因果子结构的图神经网络去偏

作者 &#xff1a;范少华 研究方向 &#xff1a;图神经网络 论文标题 &#xff1a;基于学习解纠缠因果子结构的图神经网络去偏 论文链接 &#xff1a;https://arxiv.org/pdf/2209.14107.pdf        https://doi.org/10.48550/arXiv.2209.14107 大多数图神经网络(GNNs)通…