day03

 

#ifndef __SEQLIST_H__
#define __SEQLIST_H__#include <stdio.h>
#include <string.h>
#include <stdlib.h>#define MAX 40
typedef int datatype;
typedef struct
{datatype data[MAX];int len;
}seqlist, *seqlistPtr;//创建顺序表
seqlistPtr list_create();//判满
int list_full(seqlistPtr S);//判空
int list_empty(seqlistPtr S);//向顺序表中添加元素
int list_add(seqlistPtr S,datatype e);//遍历顺序表
void list_show(seqlistPtr S);//任意位置插入元素
int list_insert_pos(seqlistPtr S, int pos, datatype e);//任意位置删除元素//按位置进行修改//按值进行修改//查找元素指定位置元素的//按值进行查找元素
int list_search_value(seqlistPtr S, datatype e);//将顺序表排序,选择排序
void list_sort(seqlistPtr S, int flag);//顺序表去重//扩容//求最值操作
void datatype_list_mvalue(seqlistPtr S, int flag);
//顺序表反转
void list_reverse(seqlistPtr S);
//释放顺序表#endif
#ifndef __SEQLIST_H__
#define __SEQLIST_H__#include <stdio.h>
#include <string.h>
#include <stdlib.h>#define MAX 40
typedef int datatype;
typedef struct
{datatype data[MAX];int len;
}seqlist, *seqlistPtr;//创建顺序表
seqlistPtr list_create();//判满
int list_full(seqlistPtr S);//判空
int list_empty(seqlistPtr S);//向顺序表中添加元素
int list_add(seqlistPtr S,datatype e);//遍历顺序表
void list_show(seqlistPtr S);//任意位置插入元素
int list_insert_pos(seqlistPtr S, int pos, datatype e);//任意位置删除元素//按位置进行修改//按值进行修改//查找元素指定位置元素的//按值进行查找元素
int list_search_value(seqlistPtr S, datatype e);//将顺序表排序,选择排序
void list_sort(seqlistPtr S, int flag);//顺序表去重//扩容//求最值操作
void datatype_list_mvalue(seqlistPtr S, int flag);
//顺序表反转
void list_reverse(seqlistPtr S);
//释放顺序表#endif
ubuntu@ubuntu:0803$ cat seqlist.c
#include "seqlist.h"
seqlistPtr list_create()
{
seqlistPtr S = (seqlistPtr)malloc(sizeof(seqlist));if(NULL==S){printf("顺序表创建失败\n");return NULL;}memset(S->data, 0, sizeof(S->data));S->len = 0;printf("顺序表创建成功\n");return S;
}
//判满
int list_full(seqlistPtr S)
{if(NULL==S){printf("所给顺序表不合法\n");return 0;}return S->len == MAX;
}
//判空
int list_empty(seqlistPtr S)
{if(NULL == S){printf("所给顺序表不合法\n");return 0;}return S->len == MAX;
}
//向顺序表中添加元素
int list_add(seqlistPtr S,datatype e)
{if(NULL==S || list_full(S)){printf("添加失败\n");return -1;}S->data[S->len] = e;S->len++;printf("添加成功\n");return 1;
}
void list_show(seqlistPtr S)
{if(NULL==S || list_empty(S)){printf("遍历失败\n");return;}printf("当前数据表的元素为:");for(int i=0; i<S->len; i++){printf("%d\t",S->data[i]);}printf("\n");
}
int list_insert_pos(seqlistPtr S, int pos, datatype e)
{if(NULL==S || list_full(S) || pos<0 || pos>S->len){printf("插入失败\n");return 0;}for(int i=S->len-1; i>pos; i--){S->data[i+1] = S->data[i];}S->data[pos] = e;S->len++;printf("插入成功\n");return 1;
}int list_search_value(seqlistPtr S, datatype e)
{if(NULL==S || list_empty(S)){printf("查找失败,顺序表为空");return -1;}for(int i=0 ; i<S->len ; i++){if(e==S->data[i]){return i;}}
}
void list_sort(seqlistPtr S, int flag)
{if(NULL==S || list_empty(S)){printf("排序失败,顺序表为空");return;}for(int i=0 ; i<S->len-1 ; i++){int min=i;for(int j=i+1 ; j<S->len ; j++){if(S->data[min] > S->data[j]){min=j;}}if(min!=i){S->data[i]^=S->data[min];S->data[min]^=S->data[i];S->data[i]^=S->data[min];}}printf("顺序表排序:");for(int i=0 ; i<S->len ; i++){printf("%d\t",S->data[i]);}putchar(10);
}
void datatype_list_mvalue(seqlistPtr S, int flag)
{if(NULL==S || list_empty(S)){printf("顺序表为空");return;}int max=S->data[0];int min=S->data[0];for(int i=0 ; i<S->len ; i++){if(max < S->data[i]){max=S->data[i];}else if(min > S->data[i]){min=S->data[i];}}printf("max=%d\nmin=%d\n",max,min);
}
void list_reverse(seqlistPtr S)
{if(NULL==S || list_empty(S)){printf("顺序表为空");return;}for(int i=0 ; i<S->len/2 ;i++){datatype temp=S->data[i];S->data[i]=S->data[S->len-1-i];S->data[S->len-1-i]=temp;}printf("顺序表反转");for(int i=0 ; i<S->len ; i++){printf("%d\t",S->data[i]);}putchar(10);
}
#include "seqlist.h"
int main(int argc, const char *argv[])
{
seqlistPtr S = list_create();if(NULL==S){return -1;}list_add(S,3);list_add(S,8);list_add(S,5);list_add(S,4);list_show(S);list_insert_pos(S, 4, 100);list_show(S);printf("元素的位置为:");printf("%d\n",list_search_value(S, 5));list_sort(S,1);datatype_list_mvalue(S,1);list_reverse(S);return 0;
}

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

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

相关文章

vscode连接远程Linux服务器

文章目录 一、环境安装1.1 下载vscode1.2 下载vscode-sever 二、ssh链接2.1 安装Remote-SSH2.2 设置vscode ssh2.3 设置免密登录2.3.1 本地生成公私钥2.3.2 服务器端添加公钥 三、安装插件3.1 vscode安装插件3.1.1 在线安装插件3.1.2.1 下载插件3.1.2.2 安装插件 3.2 vscode-se…

Openlayers实战:判断共享单车是否在电子围栏内

共享单车方便了我们的日常生活,解决了后一公里的行程问题。为了解决共享单车乱放的问题,运营部门规划出一些围栏,配合到电子地图上即为电子围栏,只有放在围栏内才能停车结算,在我们的Openlayers实战示例中,即模拟这一场景。 效果图 源代码 /* * @Author: 大剑师兰特(x…

【Git】Git切换地址

如何切换git代码地址&#xff1f; 1、查看当前远程 url git remote -v执行命令后&#xff0c;可以看见当前有2个URL。 远程 URL 在一般情况下有两个&#xff0c;分别是 fetch 和 push。 fetch URL 是用于从远程仓库获取最新版本的数据。当您运行 git fetch 命令时&#xf…

ThreadPoolExecutor线程池详解

ThreadPoolExecutor线程池详解 1. 背景 项目最近的迭代中使用到了ThreadPoolExecutor线程池&#xff0c;之前都只是知道怎么用&#xff0c;没有了解过线程池的底层原理&#xff0c;项目刚上线&#xff0c;有时间整理一下线程池的用法&#xff0c;学习一下线程池的底层实现与工…

运行 Jmeter 文件生成 HTML 测试报告,我选择 ANT 工具

概述 ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具&#xff0c;大多用于 Java 环境中的软件开发。 在与 Jmeter 生成的 jmx 文件配合使用中&#xff0c;ant 会完成jmx计划的执行和生成jtl文件&#xff0c;并将jtl文件转化为html页面进行查看。 还可…

Node.js |(三)Node.js API:path模块及Node.js 模块化 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;path模块&#x1f4da;Node.js模块化&#x1f407;介绍&#x1f407;模块暴露数据⭐️模块初体验⭐️暴露数据 &#x1f407;导入文件模块&#x1f407;导入文件夹的…

CAPL - XML和TestModule结合实现测试项可选

目录 目的:是否想实现如下面的功能呢? 一、.can和.cin文件中函数开发

C/C++面试总结

一、关键字static、const、extern、volatile作用 1、const 1.修饰常量 用const修饰的变量是不可变的&#xff0c;修饰后的变量只能使用&#xff0c;不能修改。 2.修饰指针 如果const位于*的左侧&#xff0c;eg&#xff1a;const int* a&#xff0c;则const就是用来修饰指针…

研发工程师玩转Kubernetes——hostPath

有别于《研发工程师玩转Kubernetes——emptyDir》一文中介绍的emptyDir&#xff0c;hostPath可以在同一个Node的不同Pod间共享卷。 下面的清单文件利用了Pod亲和性&#xff0c;让Pod集中到一个Node上。 apiVersion: apps/v1 kind: Deployment metadata:name: hostpath-deploy…

Adobe ColdFusion 反序列化漏洞复现(CVE-2023-29300)

0x01 产品简介 Adobe ColdFusion是美国奥多比&#xff08;Adobe&#xff09;公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言。 0x02 漏洞概述 Adobe ColdFusion存在代码问题漏洞&#xff0c;该漏洞源于受到不受信任数据反序列化漏洞的影响&#xff0c;攻击…

FinClip 支持小程序维度域名配置;桌面端体验活动进行中

FinClip 的使命是使您&#xff08;业务专家和开发人员&#xff09;能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点&#xff0c;看看是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f…

Kafka概论

前言 任何消息中间件&#xff0c;除了基础组件架构外&#xff0c;核心特性无非三个&#xff0c;消息可靠性、消息模型、吞吐量&#xff0c;本文要聊的正是这些东西&#xff0c;其余诸如API、下载安装、集群搭建等都是死的&#xff0c;而且会随着版本的变动而改变&#xff0c;这…

uni-app 封装api请求

前端封装api请求 前端封装 API 请求可以提高代码的可维护性和重用性&#xff0c;同时使得 API 调用更加简洁和易用。 下面是一种常见的前端封装 API 请求的方式&#xff1a; 创建一个 API 封装模块或类&#xff1a;可以使用 JavaScript 或 TypeScript 创建一个独立的模块或类来…

VoxWeekly|The Sandbox 生态周报|20230731

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Discord 社区&#xf…

架构实践方法

一、识别复杂度 将主要的复杂度问题列出来&#xff0c;然后根据业务、技术、团队等综合情况进行排序&#xff0c;优先解决当前面临的最主要的复杂度问题。对于按照复杂度优先级解决的方式&#xff0c;存在一个普遍的担忧&#xff1a;如果按照优先级来解决复杂度&#xff0c;可…

【MATLAB第68期】基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来(非单步预测)

【MATLAB第68期】基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来&#xff08;非单步预测&#xff09; 输入前25个时间&#xff0c;输出后5个时间 一、数据转换 1、原始数据 5列时间序列数据&#xff0c;70行样本 705 数据矩阵结构 2、数据转换 将…

利用awk筛选给定时间范围内的日志

时间戳 什么是时间戳&#xff1f; ​ 时间戳是指格林威治时间自1970年1月1日&#xff08;00:00:00 GMT&#xff09;至当前时间的总秒数。它也被称为Unix时间戳&#xff08;Unix Timestamp&#xff09;。通俗的讲&#xff0c;时间戳是一份能够表示一份数据在一个特定时间点已经存…

【数据分析专栏之Python篇】五、pandas数据结构之Series

前言 大家好&#xff01;本期跟大家分享的知识是 Pandas 数据结构—Series。 一、Series的创建 Series 是一种类似于一维数组的对象&#xff0c;由下面两部分组成&#xff1a; values&#xff1a;一组数据&#xff0c;ndarray 类型index&#xff1a;数据索引 顾名思义&…

STM32——STM32F401x系列标准库的下载+环境搭建+建工程步骤(更完整)

文章目录 标准库的下载环境搭建建工程最后的话 标准库的下载 1.STM32标准库的官网下载网站https://www.st.com/content/st_com/en.html 2. 3. 4. 5. 6. 7.点击之后下滑 8.选择自己需要的版本下载 环境搭建建工程 大致步骤同之前我写的一篇STM32——建工程差不多&#xff0…

Vue 本地应用 记事本 v-on v-model v-for使用

vue当中如何生成列表结构&#xff1f;使用的指令是v-for&#xff0c;同时要有一个可以生成列表的数据&#xff0c;常用的是数组。记事本里面的内容并不复杂&#xff0c;所以这里使用字符串数组就行了。 获取用户输入的内容使用绑定v-model&#xff0c;双向数据绑定&#xff08…