数据结构day3
一、思维导图

二、
#include "seqlist.h"#include<myhead.h>
int main(int argc, const char *argv[])
{//创建一个顺序表SeqListPtr L = list_create();if(NULL == L){return -1;}//调用添加函数list_add(L,123);list_add(L,435);list_add(L,856);list_add(L,657);list_add(L,346);//调用遍历函数list_show(L);//调用插入函数list_insert_pos(L,0,777);list_insert_pos(L,2,777);list_insert_pos(L,7,777);//遍历顺序表list_show(L);//调用删除函数list_delete_pos(L,2);//遍历顺序表list_show(L);//按值查找元素int res =list_search_value(L,657);printf("您查找的元素位置:%d\n",res+1);//按位置进行修改list_update_pos(L,2,999);//按值进行修改list_update_value(L,346,666);//遍历顺序表list_show(L);return 0;
}
#include "seqlist.h"//定义顺序表的创建函数
SeqListPtr list_create()
{//在堆区申请一个顺序表的大小空间SeqListPtr L = (SeqListPtr)malloc(sizeof(SeqList));if(NULL == L){printf("创建失败\n");return NULL;}//申请成功//初始化memset(L->data,0,sizeof(L->data));L->len = 0;printf("创建成功\n");return L;
}//判空函数
int list_empty(SeqListPtr L)
{return L->len==0;
}//判满函数
int list_full(SeqListPtr L)
{return L->len==MAX;
}//添加元素
int list_add(SeqListPtr L,datatype e)
{//判断if(NULL == L || list_full(L)){printf("添加失败\n");return -1;}//将要添加的元素放在最后一个位置L->data[L->len] = e;//长度增加L->len++;printf("添加成功\n");return 0;
}//遍历顺序表
void list_show(SeqListPtr L)
{//判断if(NULL == L || list_full(L)){printf("遍历失败\n");return;}//遍历printf("顺序表中的元素分别是:");for(int i=0;i<L->len;i++){printf("%d\t",L->data[i]);}printf("\n");
}//定义任意位置插入函数
int list_insert_pos(SeqListPtr L,int pos,datatype e)
{//判断if(NULL == L || list_full(L) ){printf("插入失败\n");return 0;}if(pos<0||pos>L->len){printf("插入位置有误\n");return 0;}//将pos位置腾空for(int i=L->len-1;i>=pos;i--){L->data[i+1] = L->data[i];}//插入新数据L->data[pos] = e;//插入成功//表长加1L->len++;printf("插入成功\n");return 0;
}//任意位置删除函数
int list_delete_pos(SeqListPtr L,int pos)
{//判断if(NULL == L || list_full(L) ){printf("删除失败\n");return 0;}if(pos<0||pos>=L->len){printf("删除位置有误\n");return 0;}//删除for(int i=pos+1;i<L->len;i++){L->data[i-1] = L->data[i];}//表长变化L->len--;printf("删除成功\n");return 0;
}//按值查找位置函数
int list_search_value(SeqListPtr L,datatype e)
{//判断合法性if(NULL == L || list_full(L) ){printf("查找失败\n");return 0;}//遍历查找for(int i=0;i<L->len;i++){if(L->data[i] == e){//返回下标return i;}}printf("未找到元素\n");return -1;
}//按位置进行修改
int list_update_pos(SeqListPtr L,int pos,datatype e)
{//判断if(NULL == L ){printf("修改失败\n");return -1;}if(pos<0||pos>=L->len){printf("修改位置有误\n");return 0;}//修改L->data[pos] = e;printf("修改成功\n");return 0;
}//按值进行修改
int list_update_value(SeqListPtr L,datatype old_e,datatype e)
{//判断合法性if(NULL == L || list_empty(L)){printf("修改失败\n");return -1;}//根据旧值查找位置int res = list_search_value(L,old_e);if(res == -1){printf("没查到要修改的值\n");}//根据查找到的位置进行更改list_update_pos(L,res,e);
}
#ifndef SEQLIST_H
#define SEQLIST_H
#include <myhead.h>#define MAX 20 //顺序表最大容量
typedef int datatype; //数据元素类型//定义顺序表结构类型
typedef struct
{datatype data[MAX]; //存放顺序表的数组int len; //顺序表长度
}SeqList,*SeqListPtr;//声明顺序表的创建函数
SeqListPtr list_create();//判空函数
int list_empty(SeqListPtr L);//判满函数
int list_full(SeqListPtr L);//添加元素
int list_add(SeqListPtr L,datatype e);//遍历顺序表
void list_show(SeqListPtr L);//顺序表按位置插入元素函数
int list_insert_pos(SeqListPtr L,int pos,datatype e);//任意位置删除元素
int list_delete_pos(SeqListPtr L,int pos);//按值查找位置函数
int list_search_value(SeqListPtr L,datatype e);//按位置进行修改
int list_update_pos(SeqListPtr L,int pos,datatype e);//按值进行修改
int list_update_value(SeqListPtr L,datatype old_e,datatype e);#endif
相关文章:
数据结构day3
一、思维导图 二、 #include "seqlist.h"#include<myhead.h> int main(int argc, const char *argv[]) {//创建一个顺序表SeqListPtr L list_create();if(NULL L){return -1;}//调用添加函数list_add(L,123);list_add(L,435);list_add(L,856);list_add(L,65…...
免费的数字孪生平台助力产业创新,让新质生产力概念有据可依
关于新质生产力的概念,在如今传统企业现代化发展中被反复提及。 那到底什么是新质生产力?它与哪些行业存在联系,我们又该使用什么工具来加快新质生产力的发展呢?今天我将介绍一款为发展新质生产力而量身定做的数字孪生工具。 新…...
mtsys2 编译 qemu 记录
参考链接 下载 MSYS2 MSYS2 MSYS2 换源 进入目录\msys64\etc\pacman.d, 在文件mirrorlist.msys的前面插入 Server http://mirrors.ustc.edu.cn/msys2/msys/$arch在文件mirrorlist.mingw32的前面插入 Server http://mirrors.ustc.edu.cn/msys2/mingw/i686在…...
【Python数据分析】数据分析三剑客:NumPy、SciPy、Matplotlib中常用操作汇总
文章目录 NumPy常见操作汇总SciPy常见操作汇总Matplotlib常见操作汇总官方文档链接NumPy常见操作汇总 在Python的NumPy库中,有许多常用的知识点,这里列出了一些核心功能和常见操作: 类别函数或特性描述基础操作np.array创建数组np.shape获取数组形状np.dtype查看数组数据类…...
STM32智能家居电力管理系统教程
目录 引言环境准备智能家居电力管理系统基础代码实现:实现智能家居电力管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:电力管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居电…...
C# 邮件发送
创建邮件类 // 有static时候 类名,方法名// MyEmail.方法名/// <summary>/// 给目标发送邮箱/// </summary>/// <param name"maiTo"></param>/// <param name"title"></param>/// <param name"con…...
Kotlin 协程简化回调
suspend 和 suspendCoroutine 实现 suspendCoroutine函数必须在协程作用域或挂起函数中才能调用,它接收一个Lambda表达式参数,主要作用是将当前协程立即挂起,然后在一个普通的线程中执行Lambda表达式中的代码。Lambda表达式的参数列表上会传…...
帝王蝶算法(EBOA)及Python和MATLAB实现
帝王蝶算法(Emperor Butterfly Optimization Algorithm,简称EBOA)是一种启发式优化算法,灵感来源于蝴蝶群体中的帝王蝶(Emperor Butterfly)。该算法模拟了帝王蝶群体中帝王蝶和其他蝴蝶之间的交互行为&…...
【学术会议征稿】第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)
第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024) 2024 6th International Conference on Frontier Technologies of Information and Computer 第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)将在中国青岛举行,会期是2024年11月8-10日,为…...
PHP MySQL 读取数据
PHP MySQL 读取数据 PHP和MySQL是Web开发中的经典组合,广泛用于创建动态网站和应用程序。在PHP中读取MySQL数据库中的数据是一项基本技能,涉及到连接数据库、执行查询以及处理结果集。本文将详细介绍如何使用PHP从MySQL数据库中读取数据。 1. 环境准备…...
点亮 LED-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板
点亮 LED 应用层操控硬件的两种方式 背景 Linux系统将所有内容视作文件,包括硬件设备,通过文件I/O方式与硬件交互 设备文件,如字符设备文件与块设备文件,是硬件设备提供给应用层的接口 应用层通过设备文件进行I/O操作ÿ…...
从0到1搭建数据中台(4):neo4j初识及安装使用
在数据中台中,neo4j作为图数据库,可以用于数据血缘关系的存储 图数据库的其他用于主要用于知识图谱,人物关系的搭建,描述实体,关系,以及实体属性 安装 在官网 https://neo4j.com/ 下载安装包 neo4j-co…...
【20】读感 - 架构整洁之道(二)
概述 继上一篇文章讲了前两章的读感,已经归纳总结的重点,这章会继续跟进的看一下,深挖架构整洁之道。 编程范式 编程范式从早期到至今,提过哪些编程范式,结构化编程,面向对象编程,函数式编程…...
js vue axios post 数组请求参数获取转换, 后端go参数解析(gin框架)全流程示例
今天介绍的是前后端分离系统中的请求参数 数组参数的生成,api请求发送,到后端请求参数接收的全过程示例。 为何会有这个文章:后端同一个API接口同时处理单条或者多条数据,这样就要求我们在前端发送请求参数的时候需要统一将请…...
揭秘郭采洁浪漫升级
【揭秘!郭采洁浪漫升级,与“莫拉怪乐”共谱爱情新篇章】在这个春意盎然的季节里,娱乐圈迎来了一则既意外又甜蜜的爆炸新闻——郭采洁,这位以独特气质与精湛演技著称的才女,悄然间迈入了人生的新阶段,而她的…...
数据结构(Java):力扣牛客 二叉树面试OJ题(一)
👉 目录 👈 1、题一:检查两棵树是否相同 1.1 思路分析 1.2 代码 2、题二:另一棵树的子树 2.1 思路分析 2.2 代码 3、题三:翻转二叉树 3.1 思路分析 3.2 代码 4、题四:判断树是否对称 …...
在国产芯片上实现YOLOv5/v8图像AI识别-【1.3】YOLOv5的介绍及使用(训练、导出)更多内容见视频
本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频:https://www.bilibili.com/video/BV1or421T74f 数据…...
逻辑门的题目怎么做?
FPGA语法练习——二输入逻辑门,一起来听~~ FPGA语法练习——二输入逻辑门 题目介绍:F学社-全球FPGA技术提升平台 (zzfpga.com)...
CentOS 7报错:yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”
参考连接: 【linux】CentOS 7报错:yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”_centos linux yum search ifconfig cannot find a val-CSDN博客 Centos7出现问题Cannot find a valid baseurl for repo: base/7/x86_64&…...
51单片机STC89C52RC——18.1 HC-SR04超声波测距
目的/效果 独立按键K1按下后开始测距,LCD显示距离(mm) 一,STC单片机模块 二,HC-SR04 超声波测距 2.1 HC-SR04 简介 HC-SR04超声波测距模块提供2cm~400cm的测距功能,精度达3mm。 2.2 时序 以上时序图表明…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
