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

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

}

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
m0_547486662 天前
《数据结构教程》全套 PPT课件2026
数据结构
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her12 天前
并查集-听课笔记
笔记·算法·并查集
码流子2 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven2 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark2 天前
从算法设计模式看编程思维的抽象能力4
算法