(36)4.20 数据结构(线性表)初始化,输入,删除,查找

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#define InitSize 10
#define Max_Size 10

//1.顺序表上基本操作的实现
//顺序表的初始化
typedef struct 
{
    int* data; //指示动态分配数组指针
    int MaxSize;//顺序表的最大容量
    int length;//顺序表的当前长度
} SeqList;
typedef struct
{
    int* data[Max_Size]; //指示动态分配数组指针
    int length;//顺序表的当前长度
} SqList;
void InitList(SeqList* L)
{
    L->data = (int*)malloc(InitSize * sizeof(int)); 
    L->length = 0;
    L->MaxSize = InitSize;

}

void IncreaseSize(SeqList* L, int len)
{
    int* p = L->data;
    L->data = (int*)malloc(InitSize * sizeof(int) + 5);
    if (L->data == NULL)
    {
        printf("%s\n", strerror(errno));
    }
    for (int i = 0; i < L->length; i++)
    {
        L->data[i] = p[i];
    }
    L->MaxSize =L-> MaxSize + len;
    free(p);
}
void ListInsert(SqList* L, int i,int e)
{
    if (i<1 || i>L->length + 1)
        return 1;
    if (L->length >= Max_Size)
        return 1;

    for (int j = L->length; j >= i; j--)
    {
        L->data[j] = L->data[j - 1];
        L->data[j - 1] = e;
        L->length++;
    }
}
void ListDelete(SqList* L, int i, int e)
{
    if (i<1 || i>L->length)
        return 0;
    e = L->data[i - 1];
    for (int j = i; j < L->length; j++)
    {
        L->data[j-1] = L->data[j];
        L->length--;
    }
    return 1;
}
int main()
{
    SeqList L;//声明一个顺序表
    InitList(&L);//初始化顺序表
    IncreaseSize(&L, 5);//增加内存
    ListInsert(&L, 3, 3);//插入数据
    int e = -1;
    ListDelete(&L, 3, &e);
    if (ListDelete)//删除数据
        printf("已删除第3个元素,删除元素的值为=%d\n", e);
    else
        printf("位序不合法,删除失败\n");             
    return 0;
}
 

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

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

相关文章

Linux基础 - libc.so调试版本编译

技术文档记录 问题&#xff1a;使用自编译的libc.so库进行动态链接报错 步骤&#xff1a; 获取源码&#xff1a;下载libc源码 https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz调试模式&#xff1a;使用 export CFLAGS" -g3 -Og" 来编译 libc.so测试编译&#xf…

STM32 HAL库 利用CH376进行USB文件读写

STM32 其实可以进行读取USB文件,但仅限于F4以上芯片才可以进行SUB文件读写,但在项目开发中,往往用不到此芯片,那么只能通过外挂的USB芯片进行USB文件读写,本文则是采用STM32F103的SPI与CH376进行通信,通过CH376操作指令进行操作。 1、CH376介绍 CH376芯片 是沁恒的一款文…

Web前端-前端工程化

黑马程序员JavaWeb开发教程 文章目录 一、前后端分离开发1、介绍&#xff08;1&#xff09;前后端混合开发&#xff08;2&#xff09;、前后端分离开发 2、YAPI&#xff08;1&#xff09;介绍 二、前端工程化-环境准备1、Vue-cli&#xff08;1&#xff09;NodeJS安装教程 三、前…

【软件工程中的增量模型】

文章目录 前言什么是增量模型&#xff1f;增量模型的优点1. 风险控制2. 增量交付3. 可变性4. 提高可维护性 增量模型的缺点1. 需求变更的管理2. 集成测试的复杂性3. 可能的性能问题 前言 增量模型是一种迭代式的软件开发模型&#xff0c;注重将系统划分为多个子系统或模块&…

客服话术分享:客服如何挖掘需求?

电商客服主动挖掘询问顾客需求是非常重要的&#xff0c;这就需要我们具备一定的沟通技巧。今天这篇客服话术分享&#xff0c;很适合想提升业绩的你们哦&#xff01; 一、打招呼式询问需求&#xff1a; 1.欢迎光临&#xff0c;本店竭诚为您服务~请问您有什么具体想了解的问题吗&…

【PHP】PHP7中的引用计数

目录 一、环境二、前言三、字符串类型四、数组类型问题1:不变数组的作用是什么?问题2:为什么非空的不变数组的refcount初始值是2?五、引用类型六、参阅一、环境 PHP 7.4 二、前言 PHP的变量在底层有一个引用计数(refcount)属性,这个引用计数是为垃圾回收(GC)服务的…

力扣数据库题库学习(4.24日)

1068. 产品销售分析 I 问题链接 思路分析 编写解决方案&#xff0c;以获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。返回结果表 无顺序要求 。 这个问题很简单&#xff0c;查询两张表内的指定字段。这个考的其实就是数据库的连接&am…

半字节16进制转asci

void uartTxHexByte(uint8_t Data) {uartTxByte(nibbleToHex(Data >> 4));uartTxByte(nibbleToHex(Data & 0x0F)); }uint8_t nibbleToHex(uint8_t nibble) {uint8_t ret nibble;if(nibble < 10){ret 0;}else{ret A - 10;}return(ret); }

架构师系列-MYSQL调优(六)- 排序优化

MySQL中的两种排序方式 索引排序: 通过有序索引顺序扫描直接返回有序数据额外排序: 对返回的数据进行文件排序ORDER BY优化的核心原则: 尽量减少额外的排序&#xff0c;通过索引直接返回有序数据。 索引排序 因为索引的结构是B树&#xff0c;索引中的数据是按照一定顺序进行…

janus架构学习

基础介绍 Janus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器&#xff0c;它支持在Linux的服务器或MacOS上的机器进行编译和安装。Janus 是使用C语言进行编写的&#xff0c;它的性能十分优秀。 架构 janus为sfu架构 模块结构图 模块说明 core模…

VR全景创业项目应该如何开展?未来有市场吗?

伴随着5G网络的发展&#xff0c;VR全景得到了众多的关注和提升。与此同时&#xff0c;各行各业都开始关注自身产业在互联网的展示效果&#xff0c;因为年轻一代的生活已经离不开互联网&#xff0c;而VR全景在互联网上的3D展示效果能给商家带来流量&#xff0c;提升营业额。 随着…

【Qt】.ui文件转.h文件

1、打开qt命令行 2、转换 uic -o ui.h mainwindow.ui

前端补充17(JS)

一、JS组成成分 JS的组成成分&#xff0c;由三部分组成 第一、ECMAScript&#xff1a;语法规则&#xff0c;如何定义变量&#xff0c;数据类型有哪些&#xff0c;如何转换数据类型&#xff0c;if判断 if-else while for for-in forEach do-while switch 数组 函数 对…

欧美助听器市场热门品牌盘点,国产爱可声备受青睐

近年来&#xff0c;随着中国技术的不断进步和品质的提升&#xff0c;国产助听器品牌爱可声在欧美市场备受瞩目。在欧美国家助听器市场&#xff0c;有许多热门品牌分别为&#xff1a;峰力、斯达克、瑞声达、爱可声等。这些品牌凭借其悠久的历史、先进的技术和高品质的产品&#…

【人工智能基础】智能Agent

一、Agent定义 能通过传感器感知环境&#xff0c;并且能通过执行器对环境产生影响的任意事物都可以被称为Agent。 AgentAgent程序运行Agent程序的物理系统 Agent函数 从感知历史P*到动作A的一种映射f。即f:P*→A。是感知历史到行为决策这个映射的抽象描述&#xff0c;体现A…

monorepo搭建记录

最终文件效果 1、准备环境 npm pnpm 2、创建文件夹npm init vite // 名字可以为main&#xff08;自定义&#xff09; 创建主应用main npm init vite // 名字可以为main monorepo下创建文件夹web 创建辅助应用 例&#xff1a;react-demo&#xff0c;具体步骤&#xff1a;1、 cd…

HackMyVM-Hommie

目录 信息收集 arp nmap WEB web信息收集 dirsearch ftp tftp ssh连接 提权 系统信息收集 ssh提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:77:ed:84, IPv4: 192.168.9.126 Starting arp-…

前端学习<四>JavaScript——定时器

定时器的常见方法 setInterval()&#xff1a;循环调用。将一段代码&#xff0c;每隔一段时间执行一次。&#xff08;循环执行&#xff09; setTimeout()&#xff1a;延时调用。将一段代码&#xff0c;等待一段时间之后再执行。&#xff08;只执行一次&#xff09; 备注&…

【svgwrite 库简介,附代码】如何将 .ttf 字体文件转化为 .svg 矢量图形?

当涉及到字体和矢量图形时&#xff0c;.ttf 和 .svg 是两种不同的文件格式&#xff1a; .ttf (TrueType Font)&#xff1a; .ttf 文件是一种常见的字体文件格式&#xff0c;用于存储 TrueType 字体。TrueType 是一种字体轮廓的标准&#xff0c;它使用贝塞尔曲线描述字形&…