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

一、头文件: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;

}

相关推荐
Jerry21 分钟前
LeetCode 1047. 删除字符串中的所有相邻重复项
算法
可编程芯片开发3 小时前
基于霍尔传感器和PID控制器的有功功率检测控制系统simulink建模与仿真
算法
To_OC3 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
战族狼魂5 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火16 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
imuliuliang6 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
ForDreamMusk7 小时前
批量归一化
人工智能·算法·机器学习
Ivanqhz8 小时前
刚体的自由度
人工智能·算法
KaMeidebaby8 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
Yang_jie_039 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法