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

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

}

相关推荐
Navigator_Z2 小时前
LeetCode //C - 1289. Minimum Falling Path Sum II
c语言·算法·leetcode
CCblandy2 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
mmmmath_32 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
YangYang9YangYan3 小时前
2027供应链计划校招:数学与应用数学专业如何把预测模型讲成业务决策?
人工智能·sql·算法
jsjzsl23 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
程序员清风3 小时前
最短路径算法:BFS、Dijkstra 与 Floyd
java·算法·宽度优先
梦帮科技3 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
171320330计算机毕设编程5 小时前
计算机毕业设计 基于YOLO改进算法的车辆特征识别系统设计与实现--lw
java·大数据·python·sql·算法
姜鱼问生5 小时前
Nginx gzip 压缩:一个配置让页面加载快 3 倍
后端·算法·架构