四.判空函数
我们看顺序表怎么样就可以判断为一个空表——表中的有效元素数据的个数即长度为0.
五.查找key值元素函数
1.一进入函数先参数判断
2.寻找key值,for循环挨个遍历
现在来测试一下查找函数
在前面插入了0~9的10个数字基础上有
这里说一下一个好的测试习惯要怎么测。首先测试用例要把各方面的边界都考虑到
一般应该有5个方面:(在数据量很多的情况)
在有效数据范围之外的无效数据
1.下标小于0,左边
2.下标大于等于length,右边
在有效数据的2个边界处(线的两端)
3.下标为0
4.下标为length-1
在有效数据长度的内部的随机位置的数值
5.0<i<length
我们这个数据量不太多,正常测的话可以从头到尾(用for循环)全测一遍
测试代码如下:
int main()
{
SQList sq;//定义一个SQList类型的变量sq,即定义一个叫sq的顺序表。但(text)并不认识SQList,所以要#include"sqlist.h"
InitSqlist(&sq);//初始化.SQ要&sq,PSQ则sq
for (int i = -1; i < 20; i++)//模拟pos值为-1,pos值大于顺序表长度10之后,的错误
{
Insert(&sq, i, i);
}
Show(&sq);//不写到循环里
int i = Search(&sq, 5);//定义一个i来接收Search的返回值,-1或下标值
if (i >= 0)
{
printf("该值位于%d号下标\n", i);//该值指的是key值5
}
else
{
printf("没有找到该值\n");
}
int index;//定义下标
for (int i = -1; i < 20; i++)
{
index= Search(&sq, i);
if (index>= 0)
{
printf("%d位于%d号下标\n", i,index);//该值指的是key值5
}
else
{
printf("没有找到该值\n");
}
}
return 0;
}
其运行结果为
可以看到在上述测试的5个方面的条件中,1,2均为“没有找到该值”,3,4,5均找到其位置。测试全部符合条件。 这些测试可以反应我们在函数的实现中“参数判断”或“移动边界条件判断”等方面是否存在问题。