顺序表C语言实现

 这是SL.h头文件

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>typedef int SeqListType;typedef struct SeqList
{SeqListType* arr;int next;int capacity;
}SL;
//调试使用void SLPrint(SL* ps);//初始化void SLInit(SL* ps);//销毁void SLDestroy(SL* ps);//头插 & 尾插void SLPushBack(SL* ps, SeqListType x);//尾插
void SLPushFront(SL* ps, SeqListType x);//头插//头销 & 尾销void SLPopBack(SL* ps);//尾
void SLPopFront(SL* ps);//头

 这是SL.c文件

#define _CRT_SECURE_NO_WARNINGS#include "SL.h"void SLInit(SL* ps)
{ps->arr = NULL;ps->next = ps->capacity = 0;
}void SLDestroy(SL* ps)
{if (ps->arr != NULL){free(ps->arr);ps->arr = NULL;}ps->next = ps->capacity = 0;
}void NewCapacity(SL* ps)
{if (ps->next == ps->capacity){int newcapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;SeqListType* tmp = (SeqListType*)realloc(ps->arr, newcapacity * sizeof(SeqListType));if (tmp == NULL){perror("malloc fail!");exit(1);}ps->arr = tmp;ps->capacity = newcapacity;}
}void SLPushBack(SL* ps, SeqListType x)
{assert(ps);NewCapacity(ps);ps->arr[ps->next++] = x;
}void SLPushFront(SL* ps, SeqListType x)
{assert(ps);NewCapacity(ps);for(int i = ps->next++;i > 0;i --){ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;
}void SLPrint(SL* ps)
{for (int i = 0; i < ps->next; i++){printf("%d ", ps->arr[i]);}printf("|| \n");
}void SLPopBack(SL* ps)
{assert(ps);assert(ps->next);ps->next--;
}void SLPopFront(SL* ps)
{assert(ps);assert(ps->next);for (int i = 0; i < ps->next - 1; i++){ps->arr[i] = ps->arr[i + 1];}ps->next--;
}

 这是测试main

#define _CRT_SECURE_NO_WARNINGS
#include "SL.h"int main()
{SL A;SLInit(&A);SLPushBack(&A, 0);SLPrint(&A);SLPushBack(&A, 1);SLPrint(&A);SLPushFront(&A, 2);SLPrint(&A);SLPopBack(&A);SLPrint(&A);SLPushBack(&A, 5);SLPrint(&A);SLPopFront(&A);SLPrint(&A);return 0;
}

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

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

相关文章

JVM主要知识点详解

目录 1. 性能监控和调优 1.1 调优相关参数 1.2 内存泄漏排查 1.3 cpu飙⾼ 2. 内存与垃圾回收 2.1JVM的组成&#xff08;面试题&#xff09; 2.2 Java虚拟机栈的组成 2.3 本地方法栈 2.4 堆 2.5 方法区&#xff08;抽象概念&#xff09; 2.5.1 方法区和永久代以及元空…

阿里云服务器8核16G配置最新租用收费价格表与优惠价格

8核16G配置是大部分企业级用户购买阿里云服务器的首选配置&#xff0c;2024年经过调价之后&#xff0c;8核16G配置的阿里云服务器按量收费标准最低为0.9元/小时&#xff0c;按月租用平均优惠月价最低收费标准为432.0元/1个月&#xff0c;按年购买最低活动价格为1803.17元/1年&a…

Avalonia中嵌入网页程序(CefNet)

Avalonia中嵌入网页程序cefNet 1. 引入CefNetNuget包2. 下载 cef 基础环境3. 将cef基础环境放入程序运行目录下4. 代码中初始化cef5. 添加Webview控件6. 在窗口关闭的时候释放Cef7. 项目结构图CefNet 开源的作者已经停止维护并删除了原始的代码库:GetHub:CefNet,Nuget上还有发…

linux命令(一)

linux命令&#xff08;一&#xff09; 一、单选题 1、改变文件所有者的命令为()。 A、chmod B、touch C、chown D、cat 2、假设当前有两个用户组group1、group2,有三名用户usr1、usr2、usr3,其中usr1、usr2属于用户组group1,usr3属于用户组group2。假设用户usr1使用“touch f…

# ABAP SQL 字符串处理-CONCATCAST

经常我都要在ABAP的sql语句中对字符串进行处理&#xff0c;现在就总结一下可以用到的方法 文章目录 字符串处理拼接字段运行结果 填充字符串运行结果 截取字符串 SUBSTRING运行结果 CAST转换类型程序运行结果 CAST 转换成 DATS类型&#xff08;日期&#xff09; 字符串处理 在…

中国电子学会(CEIT)2021年12月真题C语言软件编程等级考试三级(含详细解析答案)

中国电子学会(CEIT)考评中心历届真题(含解析答案) C语言软件编程等级考试三级 2021年12月 编程题五道 总分:100分一、我家的门牌号(20分) 我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的…

List接口介绍

List接口特点 List是有序、可重复的容器。 有序&#xff1a;有序&#xff08;元素存入集合的顺序和取出的顺序一致&#xff09;。List中每个元素都有索引标记。可以根据元素的索引标记&#xff08;在List中的位置&#xff09;访问元素&#xff0c;从而精确控制这些元素。 可…

【c语言】结构体的访问

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

webIDE jupyternotebook中添加虚拟环境

困扰了我好久啊啊啊终于可以了&#xff0c;好了步入正题&#xff1a; 首先参考这个博客 指路 但是有一些错误&#xff0c;就是我添加我的虚拟环境时显示权限不够 我就在这一步前面加上了sudo python -m ipykernel install --nameyour_env_name(虚拟环境名)但是又显示 sudo: p…

性能分析汇总

要进行性能分析&#xff0c;需要在性能脚本运行时&#xff0c;对服务器进行性能监控 常用的性能监控命令&#xff0c;当然也可以通过性能平台来进行查看。 常用的性能监控命令 详细查看这里 top: 进程列表中&#xff0c;是根据cpu的使用率从高到低排序 top命令的语法如下&a…

DIY可视化实现仿抖音短视频代码生成器

DIY可视化实现仿抖音短视频代码生成器&#xff0c;仿抖音短视频兼容uniapp、微信小程序 丝滑切换视频效果&#xff0c;无限数据加载不卡顿&#xff0c;高性能滑动不卡顿超流畅&#xff0c;观看视频丝滑切换&#xff0c;页面内容自定义&#xff0c;无限数据加载不卡顿。 在线设…

简单3步,OpenHarmony上跑起ArkUI分布式小游戏

标准系统新增支持了方舟开发框架&#xff08;ArkUI&#xff09;、分布式组网和 FA 跨设备迁移能力等新特性&#xff0c;因此我们结合了这三种特性使用 ets 开发了一款如下动图所示传炸弹应用。 打开应用在通过邀请用户进行设备认证后&#xff0c;用户须根据提示完成相应操作&am…

入局新能源车赛道 深象智能智慧门店方案落地极氪全国门店

继商超、商场、校园场景后&#xff0c;银泰商业集团旗下科技公司深象智能科技入局新能源汽车赛道。4月16日&#xff0c;深象智能科技与极氪智能科技达成战略合作。该公司研发的软硬件一体化“智慧门店”解决方案&#xff0c;将应用于极氪全国门店。 &#xff08;图&#xff1a;…

如何将Oracle 中的部分不兼容对象迁移到 OceanBase

本文总结分析了 Oracle 迁移至 OceanBase 时&#xff0c;在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式&#xff0c;通过提前发现并处理这些问题&#xff0c;可以有效规避迁移过程中的报错风险。 作者&#xff1a;余振兴&#xff0c;爱可生 DBA 团队成员&#x…

WEB前端-笔记

目录 一、字体 二、背景图片 三、显示方式 四、类型转换 五、相对定位 六、绝对定位 七、固定定位 八、Index 九、粘性定位 十、内边距 十一、外边距 十二、边框 十三、盒子尺寸计算问题 十四、清楚默认样式 十五、内容溢出 十六、外边距的尺寸与坍塌 十七、行…

支持国密加密卡的堡垒机是什么牌子?电话多少?

堡垒机作为一种关键的安全设备&#xff0c;其对于国密加密卡的支持显得尤为重要。目前市面上堡垒机品牌众多&#xff0c;那么究竟哪个品牌的堡垒机支持国密加密卡呢&#xff1f;电话多少呢&#xff1f; 支持国密加密卡的堡垒机是什么牌子&#xff1f;电话多少&#xff1f; 【回…

Linux中安装seata

Linux中安装seata 一、准备1、环境2、下载3、上传到服务器4、解压 二、配置1、备份配置文件2、导入sql3、修改配置前4、修改配置后5、在nacos中配置 三、使用1、启动2、关闭 一、准备 1、环境 因为要在 nacos 中配置&#xff0c;要求安装并启动 nacos 。可以参考这篇博客。 …

在centos8.5上迁移深度学习环境的时候碰到的一下问题(需要运维人员解决的)

我负责的是将开发服务器上的深度学习环境进行打包并将该环境迁移到生产服务器上&#xff0c;这些操作可以在其他博客中搜到 本文主要介绍我把环境包上传至生产服务器中的anaconda/envs/路径下&#xff0c;解压之后&#xff0c;运行测试代码时遇到的问题 IT部门是如何处理的&am…

Python Coroutine 池化实现

池化介绍 在当今计算机科学和软件工程的领域中&#xff0c;池化技术如线程池、连接池和对象池等已经成为优化资源利用率和提高软件性能的重要工具。然而&#xff0c;在 Python 的协程领域&#xff0c;我们却很少见到类似于 ThreadPoolExecutor 的 CoroutinePoolExecutor。为什…

供应链金融AI机器学习建模实战_论文科研_企业建模定制服务

随着全球贸易的不断发展和供应链的日益复杂化&#xff0c;供应链金融作为一种新型金融工具&#xff0c;正逐渐受到企业和金融机构的关注和重视。供应链金融是指通过金融手段来优化和改进供应链中的资金流动和货物流动&#xff0c;以实现企业间的合作共赢。 供应链金融的核心是将…