c语言实现动态顺序表的增删查改

首先呢,我们要创建一个顺序表

 c语言实现动态顺序表的增删查改_第1张图片

 为了以后更好的写,我们可以把这个结构体重定义为SL;

首先要对结构体进行初始化

c语言实现动态顺序表的增删查改_第2张图片

 我们是通过指向结构体指针来找到结构体对应的对象来进行初始化的;

尾插的实现:SLPushBack

c语言实现动态顺序表的增删查改_第3张图片

当然了,尾插一定要考虑顺序表的容量与所放个数的大小,必要时要进行扩容;

以下便是CheckCapacity函数的实现啦!

c语言实现动态顺序表的增删查改_第4张图片

 扩容呢,先要确定需要让新容量newcapacity的大小,然后再用realloc函数进行扩容;在进行扩容时要进行对ptr是否为空指针的判断;为空则不进行下面的代码;

接下来便是对头删SLPopFront的实现啦~

c语言实现动态顺序表的增删查改_第5张图片

1:首先删除必须有数据才删,要对pc->size进行判断;

2: 其中它所指数据的最后一个位置便是pc-size-1,就是指他所的数据-1就是最后一个位置;

3:SL顺序表的删除一般拿采用覆盖的方法;

4:头删因为没有进行扩容,所以要考虑数组越界的情况,应避免使用未创造内存;

以下便是SLPushFront头插的实现代码~

c语言实现动态顺序表的增删查改_第6张图片

 1:检查容量,及其指针pc;

2:确定end的初始位置;pc->size-1;

 以下便是尾插与尾删的实现啦~

c语言实现动态顺序表的增删查改_第7张图片

c语言实现动态顺序表的增删查改_第8张图片

 1:尾删SLPopBack直接进行对存放个数减一,因为访问不到所放数据也可认定为删除;

2:指针的断言;

3:插入要进行容量的检查;

以下是给个位置的删除SLErase与插入SLInsert'代码;

c语言实现动态顺序表的增删查改_第9张图片

 c语言实现动态顺序表的增删查改_第10张图片

1:插入时要注意顺序表插入的位置;

2:插入一般已经考虑了内存问题,一般不用考虑数组越界问题;

3:要找准end,begin指针变量的临界点;

4:插入与删除某个位置的数据一般通过查找通过返回的地址来传;

 顺序表的暴力查找及其删除;c语言实现动态顺序表的增删查改_第11张图片

 c语言实现动态顺序表的增删查改_第12张图片

 以下便是各类函数的定义啦~

c语言实现动态顺序表的增删查改_第13张图片

 1:在定义函数名的时候应该通俗易懂;

这便是从c语言实现顺序表的增删查改啦!

 

 

你可能感兴趣的:(数据结构)