动态数据表的实现(查找)

动态数据表的实现(查找) 一、头文件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);二、实现文件3-20.c2.1.作用定义结构体和所有函数的接口2.2.代码代码如下//查找元素int SLFind(SL* sl, SLDataType x) {assert(sl);for (int i 0; i sl-size; i) {if (sl-a[i] x) {return i;}}return -1;}三、 测试文件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(没有找到);}}int main() {SLTest01();return 0;}