动态顺序表的实现(修改)

一、头文件:SeqList.h

1.1.作用:包含所有结构体定义和函数声明
1.2.代码

代码如下:

#pragma once

#include<stdio.h>

#include<stdlib.h>

#include<assert.h>

typedef int SLDataType;

typedef struct SeqList {

SLDataType* a;

int size;

int capacity;

}SL;

void SLCheckCapacity(SL* sl);

void SLprint(SL* sl);

void SLInit(SL* sl);

void SLPushFront(SL* sl, SLDataType x);

void SLPushBack(SL* sl, SLDataType x);

void SLInsert(SL* sl, int pos, SLDataType x);

void SLRemoveAll(SL* sl, SLDataType x);

void SLPopFront(SL* sl);

void SLPopBack(SL* sl);

void SLErase(SL* sl, int pos);

//查找元素

int SLFind(SL* sl, SLDataType x);
//修改指定位置的数据
void SLModify(SL* sl, int pos, SLDataType);

二、实现文件:3-20.c

2.1.作用:定义结构体和所有函数的接口
2.2.代码

代码如下:

//修改指定位置的数据

void SLModify(SL* sl, int pos, SLDataType x){

assert(sl);

assert(pos >= 0 && pos <= sl->size);

sl->apos = x;

}

三、测试文件:test.c

3.1.作用:程序的入口,演示如何使用上述所有功能。
3.2.代码

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include"SeqL.h"

void SLTest01() {

SL sl;

SLInit(&sl);

printf("------1.测试头插-----");

SLPushFront(&sl, 0);

SLPrint(&sl);

printf("------2.测试尾插-----");

SLPushBack(&sl, 1);

SLPushBack(&sl, 2);

SLPushBack(&sl, 3);

SLPushBack(&sl, 4);

SLPushBack(&sl, 5);

SLPrint(&sl);

printf("------3.测试任意位置插入-----");

SLInsert(&sl, 2, 99);

SLPrint(&sl);

printf("------4.删除所有的2------");

SLPushBack(&sl, 2);

SLPushBack(&sl, 2);

SLPushBack(&sl, 2);

SLPushBack(&sl, 2);

SLPushBack(&sl, 6);

printf("删除前:");

SLPrint(&sl);

printf("正在删除所有值为2的元素....\n");

SLRemoveAll(&sl, 2);

printf("删除后: ");

SLPrint(&sl);

printf("-------头删-------");

SLPopFront(&sl);

SLPrint(&sl);

printf("-------尾删-------");

SLPopBack(&sl);

SLPrint(&sl);

printf("-------删除指定位置-------");

SLErase(&sl, 2);

SLPrint(&sl);

printf("------5.测试查找-----------");

SLFind(&sl, 3);

if (SLFind(&sl, 3)!=-1) {

SLPrint(&sl, 3);

}

else {

printf("没有找到");

}

SLModify(&sl, 1, 88);

SLPrint(&sl);

}

int main() {

SLTest01();

return 0;

}

相关推荐
ZhengEnCi9 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
罗西的思考10 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
夜不会漫长12 小时前
C++:红黑树
数据结构·算法
AI备案指南-满满13 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记
Ramble_Naylor13 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
秋天的怀念_David13 小时前
算法一千零一夜 · 第二十三夜 电力民生写成的曲线
java·程序人生·算法
不一样的故事12613 小时前
NB/T 47013.8-2015 附录D 吸枪技术
人工智能·经验分享·算法
通问AI13 小时前
用 200 行 Python 给文档库做「上下文完整度」自检:四个可复算的检查项
算法
揽星河..13 小时前
【C语言】扫雷游戏
c语言·算法·游戏
丘山录13 小时前
本地部署 LongCat-2.5,要 7 台机器我只有 4 台
人工智能·算法