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

发布时间:2026/7/24 15:08:16

动态顺序表的实现(修改) 一、头文件SeqList.h1.1.作用包含所有结构体定义和函数声明1.2.代码代码如下#pragma once#includestdio.h#includestdlib.h#includeassert.htypedef 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.c2.1.作用定义结构体和所有函数的接口2.2.代码代码如下//修改指定位置的数据void SLModify(SL* sl, int pos, SLDataType x){assert(sl);assert(pos 0 pos sl-size);sl-a[pos] x;}三、测试文件:test.c3.1.作用程序的入口演示如何使用上述所有功能。3.2.代码代码如下#define _CRT_SECURE_NO_WARNINGS 1#includeSeqL.hvoid 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;}

相关新闻