数据结构-顺序表2

接下来我们实现这些对顺序表基本的操作函数

将(.h)里面的函数原型复制粘贴到(.cpp)里面,注意要引用头文件,不然它不认识这些函数定义

一.初始化

我们首先来看 初始化 是干什么的,如果我们在定义好一个顺序表后不初始化,那么顺序表里面的值就都是随机值,在刚定义好的时候有效数据的长度length的值肯定是0,因为你还没有放入有效数据,刚开始是个空表。最害怕的是如果里面定义的长度length的值如果不是0,而是一个随机值,假如给length个随机值100,那就表示顺序表里面前100个值是有效的数据,但实际上这些都是无效的随机值,那肯定会出问题。所以刚开始length的值肯定要初始化为0.而初始化的作用 就是把数据结构体里面 每一个数据成员 都考虑一下,看看它要不要做初始化(应该一开始给个什么值)。

那么比如我们这个数据结构里面有2个数据成员,那么这2个就都要考虑一下,是可以继续存放它里面的随机值,还是为了后面正确的使用,要把它变成一个什么我需要的特定值(非随机值)。

这里我们需要把成员length的值初始化为0,而elem里面可以不改,继续存放随机值,因为length已经为0,那就说明elem里面的随机值都是无效的数据,所以这时elem里面的值改不改都无所谓,不影响。        这就是所谓初始化要把数据结构里面每位结构体成员都考虑一遍,一看需不需要,做不做。        再看不做影不影响,不影响的就不做。影响就必须做。

所以我们初始化操作就是这样的:(前面说了结构体指针变量通过指向符(->)访问其成员)

一开始PS是指向elem的。如图

那么还有一个问题是:PS有没有可能为空?——有的。因为PS有可能是从外面传进来的,所以PS可能为空,一旦PS为空,那访问空的length就会崩溃了。        所以这里前面要加一个断言(assert),断言PS不等于空。如果PS等于空了,就中间return出去。不要走到下一步去访问空的length了。记得断言要加include

那么初始化我们就完成了。这里还有个小技巧是——我们平时写代码的时候写一个函数,就测试一个函数。        你不能说我把一大堆函数全部写完。有时候函数的错误之间有可能是互相影响的。那么你把这个函数写完了,你就把这个函数测一下。你不能说我就写了一句代码,几乎不太可能有错,我就不测了,你测一下为好,万一后面有问题。那么我们测就在这里(text.cpp)里面测一下。测我们的初始化会不会出问题

运行后没有报错就证明且最后代码为0,就证明起码首先编译没问题了。

上面这段代码不能放到(sqlist.cpp)里面,否则(text.cpp)里面的代码测试时会出现如下错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值