【数据结构】顺序表

前言

在学习完时间复杂度和空间复杂度后,我们便开始正式实现一些数据结构了。本篇文章实现的是线性表中的顺序表。

顺序表的实现与通讯录其实差不多。

我们首先要创建三个文件,一个头文件定义结构体类型和放函数声明,一个实现函数的功能的.c文件,还有主函数.c文件用于测试功能。

目录

一、头文件

二、函数实现

2.1 初始化节点

2.2 尾插数据

2.3 容量检查并扩容

2.4 头插数据

2.5 打印数据

2.6 在pos位置插入数据

 2.7 尾删数据

2.8 头删数据

2.9 在pos位置删除

2.10 查找数据

2.11 修改数据


一、头文件

从头文件中可以看到一些我们今天要实现的函数功能。头文件中包含了本篇博客我们将要实现的顺序表功能——增删查改.

二、函数实现

2.1 初始化节点


2.2 尾插数据

1.检查顺序表的大小

2.在下标为sz位置处插入数据


2.3 容量检查并扩容

我们在插入数据时,每次都需要检查顺序表中的容量,来避免表的大小造成程序错误。这时我们则可以将这个功能封装成一个函数,以便以后的多次调用。


2.4 头插数据

这里注意,顺序表插入数据要将表中已存放的数据整体向后移动一位,然后再将数据插入到下标为0的表中。


2.5 打印数据

在上面我们实现头插、尾插数据后,我们来将插入的数据打印一下。并看一下我们插入数据的效果。

接下来我们尾插6个数据,头插6个数据,这里插入12个数据还可以检测我们的扩容函数是否成功运行。


2.6 在pos位置插入数据

在实现了头插、尾插之后,我们再来实现一个可以在任意位置插入的函数。

 这时我们可以想一下,我们可不可以复用这个函数来将头插、尾插的功能代替。

那在这个函数的眼里,头插——即是在0下标处插入数据;尾插即是在sz下标处插入数据。

 这样直接就可以实现头插、尾插的功能了。


 2.7 尾删数据


2.8 头删数据

 功能实现检查 


2.9 在pos位置删除

同样,插入可以复用,那我们使用删除一样可以在头删、尾插中复用。


2.10 查找数据

传入要查找的值,即可在表中进行查找,找到则返回下标,如果没找到就返回NULL;


2.11 修改数据

直接将待修改的下标和数据传入,即可以修改数据。


 

 练习这些函数的功能可以帮我们更熟练的掌握线性表中的顺序表,对于我们马上学习的链表也有十分大的作用。

好了,本篇博客的内容到此就结束了,下篇博客我们会学习链表的相关操作,大家可以持续关注。

希望大家可以留个赞鼓励一下,我们下期再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brant_zero2022

素材免费分享不求打赏,只求关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值