数据结构2月19日

题目:顺序表作业

代码:

功能区:

 #include <stdio.h>
 #include <stdlib.h>
 #include "./d2191.h"
 
 SeqList* create_seqList()
 {
     SeqList* list = (SeqList*)malloc(sizeof(SeqList));
     if(NULL== list)
     {
         return NULL;
     }
     list->pos=0;//初始化要操作的位置为0
 
     return list;
 }
 
 void insert_seqList(SeqList* list,dataype num)
 {
     //判断顺序表是否为满
     if(list->pos >=N)
     {
         printf("顺序表为满,插入失败\n");
         return;
     }
 
     //在pos位置插入数据
     list->data[list->pos] = num;
                                                                                                                 
     //将pos++
     (list->pos)++;
     printf("插入成功\n");
     return;
 }
 
 void show_seqList(SeqList* list)
 {
     int i;
     for(i=0;i<=list->pos;i++)
     {
         printf("%d ",list->data[i]);
     }
     printf("\n");
 }
 
 dataype del_seqList(SeqList* list)
 {
     //判断顺序表是否为空
     if(list->pos > 0)
     {
         (list->pos)--;
         dataype num =list->data[list->pos];
         return num;
     }
 }
 
 //从下标插入数据
 void index_seqList(SeqList* list,int index,int temp)
 {
     int i ;
     if(index<=0||index>=N||list->pos >=N)
     {
         printf("要插入的下标错误或者超出");
         return;
     }
     for(i=list->pos;i>index;i--)
     {
         list->data[i]=list->data[i-1];
     }
 
     (list->pos)++;
 
     list->data[index]=temp;
 
     return;
 }
 
 //从下标删除数据
 dataype deletebyindex_seqList(SeqList* list,int index)
 {
     int i;
 
     if(index<=0||index>=N||list->pos >=N)
     {
         printf("要删除的下标错误或者超出");
         return 0;
     }
 
     int beifen=list->data[index];
     for(i=index;i<list->pos;i++)
     {
         list->data[i]=list->data[i+1];
     }
     (list->pos)--;
 
     return beifen;
 }
 
 //从下标修改数据
 void update_seqList(SeqList* list,int index,int newnum)
 {
     if(index<0||index>list->pos)
     {
         printf("非法输入\n");
         return;
     }
     list->data[index]=newnum;
     printf("修改成功\n");
 
     return;
 }
 
 //按下标查找数据
 dataype find_seqList(SeqList* list,int index)
 {
     if(index<0||index>list->pos)
     {
         printf("非法输入\n");
         return 0;
     }
 
     return list->data[index];
 
 }
 
 //按数据修改数据
 void updatebydata_seqList(SeqList* list,int oldnum,int newnum)
 {
     int i;
     for(i=0;i<list->pos;i++)
     {
         if(list->data[i]==oldnum)
         {
             list->data[i]=newnum;
         }
     }
     printf("更新完成\n");
     return ;
 }
 
 //按数据查找位置
 int selectbydata_seqList(SeqList* list,int num)
 {
     int i;
     for(i=0;i<list->pos;i++)
     {
         if(list->data[i]==num)
         {
             return i;
         }
     }

函数调用区:

include <stdio.h>
include "./d2191.h"
nt main(int argc, const char *argv[])

   //创建一个顺序表
   SeqList* list = create_seqList();

   //从尾部插入数据
   insert_seqList(list,10);
   insert_seqList(list,100);
   insert_seqList(list,1000);
   insert_seqList(list,10000);
   insert_seqList(list,10);

   //从尾部删除
   printf("%d\n", del_seqList(list));

   //从下标插入数据
   index_seqList(list,5,888);
   show_seqList(list);


   //从下标删除数据
   printf("%d\n",deletebyindex_seqList(list,3));
   show_seqList(list);                                        

   //从下标修改数据
   update_seqList( list,3,66);
   show_seqList(list);

   //按下标查找数据
   printf("查找的数据是%d\n",find_seqList(list,3));

   //按数据修改数据
   updatebydata_seqList(list,10,11);
   show_seqList(list);

   //按数据查找位置
   printf("该数字在第几个%d\n",selectbydata_seqList(list,66));

   return 0;

头文件区:

 #ifndef FUNC_C_
 #define FUNC_C_
 
 #define N 6//顺序表容量
 
 typedef int dataype;
 
 typedef struct
 {
     dataype data[N];//顺序表
     int pos;//记录要操作顺序表的位置
 }SeqList;
 
 SeqList* create_seqList();
 void insert_seqList(SeqList* list,dataype num);
 void show_seqList(SeqList* list);
 dataype del_seqList(SeqList* list) ;
 void index_seqList(SeqList* list,int index,int temp);
 dataype deletebyindex_seqList(SeqList* list,int index);
 void update_seqList(SeqList* list,int index,int newnum);
 dataype find_seqList(SeqList* list,int index);
 void updatebydata_seqList(SeqList* list,int oldnum,int newnum);
 int selectbydata_seqList(SeqList* list,int num);
 
 #endif                                                            

运行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PULpy安装与使用

今天试一下安装PULpy GitHub - WatsonLab/PULpy: Open prediction of Polysaccharide Utilisation Loci (PUL) 下载下面这个文件 https://github.com/WatsonLab/PULpy/blob/master/envs/PULpy.yaml mkdir PULpy cd PULpy #将刚刚下的文件放到PULpy文件夹中 conda env crea…

微服务篇之限流

一、为什么要限流 1. 并发的确大&#xff08;突发流量&#xff09;。 2. 防止用户恶意刷接口。 二、限流的实现方式 1. Tomcat限流 可以设置最大连接数&#xff0c;但是每一个微服务都有一个tomcat&#xff0c;实现起来非常麻烦。 2. Nginx限流 &#xff08;1&#xff09;控…

Java的编程之旅24——private私有方法

1.private的介绍 在面向对象编程中&#xff0c;private是一种访问修饰符&#xff0c;用于限制成员的访问范围。私有成员只能在所属的类内部访问&#xff0c;对外部的类或对象是不可见的。 private的使用可以带来以下几个好处&#xff1a; 封装实现细节&#xff1a;私有成员可…

程序媛的mac修炼手册--小白入门Java篇

最近因为要用CiteSpace做文献综述&#xff0c;间接接触Java了。所以&#xff0c;继Python、C之后&#xff0c;又要涉猎Java了。刺激&#xff01;&#xff01; 由于CiteSpace与Java要求版本高度匹配&#xff0c;有个匹配详情明天为大家讲解。总之&#xff0c;我的Java之旅开始于…

2024年 前端JavaScript入门到精通 第四天 笔记

4.1 函数的基本使用以及封装练习 4.2 函数的参数以及默认参数 函数的灵魂&#xff01;&#xff01;&#xff01; 4.3 函数封装数组求和案例 4.4 函数返回值return 4.5 函数返回值细节以及上午总结 4.6 函数返回值案例-求最大值和最 4.7 函数复习以及断点进入函数 4.8 作用域 4…

5个精美的wordpress中文企业主题模板

元宇宙WordPress主题模板 简洁大气的元宇宙 Metaverse WordPress主题模板&#xff0c;适合元宇宙行业的企业官网使用。 https://www.jianzhanpress.com/?p3292 职业技术培训WordPress主题模板 简洁大气的职业技术培训WordPress主题&#xff0c;适合用于搭建教育培训公司官方…

政安晨:【示例演绎机器学习】(三)—— 神经网络的多分类问题示例 (新闻分类)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让小伙伴们一起学习、交流进步&#xff0c;不论是学业还是工…

简单几步通过DD工具把云服务器系统Linux改为windows

简单几部通过DD安装其他系统&#xff0c;当服务器的web控制台没有我们要装的系统&#xff0c;就需要通过DD&#xff08;Linux磁盘&#xff09;工具来更改系统&#xff0c;&#xff08;已知支持KVM系统&#xff09; 本文如何简单的更换系统&#xff0c;不通过web控制台来更换&a…

蓝桥 算法训练 粘木棍(C++)

问题描述 有N根木棍&#xff0c;需要将其粘贴成M个长木棍&#xff0c;使得最长的和最短的的差距最小。 输入格式 第一行两个整数N,M。   一行N个整数&#xff0c;表示木棍的长度。 输出格式 一行一个整数&#xff0c;表示最小的差距 样例输入 3 2 10 20 40 样例输出 10…

Excel面试题及答案(1)

1.辅助列添加,快速填充方式填充隔行的编号;定位条件定位到空值后,右击---插入整行 2.利用通配符计算A3:A9含有车间的单元格个数(保留计算公式)。 3.利用身份证号提取 “性别”、“年月日”、“年龄” 性别:利用mid()方法,添加了一列辅助列,根据提取身份证后面第2位…

十八、图像像素类型转换和归一化操作

项目功能实现&#xff1a;对一张图像进行类型转换和归一化操作 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 norm.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class NORM { public:void norm(Mat& image); };#pragma once二…

大语言模型的开山之作—探秘GPT系列:GPT-1-GPT2-GPT-3的进化之路

模型模型参数创新点评价GPT1预训练微调&#xff0c; 创新点在于Task-specific input transformations。GPT215亿参数预训练PromptPredict&#xff0c; 创新点在于Zero-shotZero-shot新颖度拉满&#xff0c;但模型性能拉胯GPT31750亿参数预训练PromptPredict&#xff0c; 创新点…

洛谷P3371【模板】单源最短路径(弱化版)(RE版本和AC版本都有,这篇解析很长但受益匪浅)

解释一下什么叫邻接矩阵&#xff1a; 假设有以下无向图&#xff1a; 1/ \2---3/ \ / \4---5---6对应的邻接矩阵为&#xff1a; 1 2 3 4 5 6 1 0 1 1 0 0 0 2 1 0 1 1 1 0 3 1 1 0 0 1 1 4 0 1 0 0 1 0 5 0 1 1 1 0 1 6 0 0 1 0 1 0 …

SpringCloud全家桶---常用微服务组件(1)

注册中心: *作用: 服务管理 Eureka(不推荐)[读音: 优瑞卡] Nacos(推荐) Zookeeper [读音: 如k波] Consul [读音:康寿] **注册中心的核心功能原理(nacos)** 服务注册: 当服务启动时,会通过rest接口请求的方式向Nacos注册自己的服务 服务心跳: NacosClient 会维护一个定时心跳持…

【Python笔记-设计模式】原型模式

一、说明 原型模式是一种创建型设计模式&#xff0c; 用于创建重复的对象&#xff0c;同时又能保证性能。 使一个原型实例指定了要创建的对象的种类&#xff0c;并且通过拷贝这个原型来创建新的对象。 (一) 解决问题 主要解决了对象的创建与复制过程中的性能问题。主要针对…

【stm32】hal库-双通道ADC采集

【stm32】hal库-双通道ADC采集 CubeMX图形化配置 程序编写 /* USER CODE BEGIN PV */ #define BATCH_DATA_LEN 1 uint32_t dmaDataBuffer[BATCH_DATA_LEN]; /* USER CODE END PV *//* USER CODE BEGIN 2 */lcd_init();lcd_show_str(10, 10, 24, "Demo14_4:ADC1 ADC2 S…

SpringCloud(15)之SpringCloud Gateway

一、Spring Cloud Gateway介绍 Spring Cloud Gateway 是Spring Cloud团队的一个全新项目&#xff0c;基于Spring 5.0、SpringBoot2.0、 Project Reactor 等技术开发的网关。旨在为微服务架构提供一种简单有效统一的API路由管理方式。 Spring Cloud Gateway 作为SpringCloud生态…

文件上传---->生僻字解析漏洞

现在的现实生活中&#xff0c;存在文件上传的点&#xff0c;基本上都是白名单判断&#xff08;很少黑名单了&#xff09; 对于白名单&#xff0c;我们有截断&#xff0c;图片马&#xff0c;二次渲染&#xff0c;服务器解析漏洞这些&#xff0c;于是今天我就来补充一种在upload…

银河麒麟桌面版操作系统修改主机名

1图形化方式修改 1.1在计算机图标上右键&#xff0c;选择属性 1.2修改 1.2.1点击修改计算机名 选择玩属性后会自动跳转到关于中&#xff0c;在计算机名中点击修改图标本质就是设置里面的系统下的关于&#xff0c;我们右键计算机选择属性就直接跳转过来了 1.2.2修改系统名字 …

【Spring】SpringBoot 日志文件

目 录 一.日志有什么用&#xff1f;二.日志怎么用&#xff1f;三.自定义日志打印四.日志持久化五.日志级别六.更简单的日志输出—lombok 日志的主要掌握内容&#xff1a; 输出自定义日志信息 将日志持久化 通过设置日志的级别来筛选和控制日志的内容 一.日志有什么用&#…