一、头文件: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->a[pos] = 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;
}

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐