#Python知识分享#
顺序表的基本操作——查找操作
一、按位查找
按位查找操作:就是根据位置提示,找到所需要的第i个位置的元素的值。
静态方式:
#defineMaxSize8//定义出最大的长度,此处表示小鸭子的总数
typedefstruct{
intdata[MaxSize];//采用静态数组的方式来存放数据元素
intlength;//定义顺序表当前的长度
}Sqlist;//定义顺序表的类型
intGetElem(SqListL,inti)
{returnL.data[i-1];}
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架该方式位静态存储方式,依据数组定义可知,数组的下标是从0开始计数,而我们所说的位置是从1开始计数,所以已知位置数,在寻找该位置处的数据元素数值时,需要在数组下标基础上-1。
在获取相应位置的元素时,还可以判断一下该处的下标值是否合法,即在所处数据范围内。
动态方式:
#defineinitSize8//定义出最大的长度,此处表示小鸭子的总数
typedefstruct{int*data;//采用动态指针的方式来存放数据元素
intmaxSize;//定义出顺序表的最大容量
intlength;//定义顺序表当前的长度
}Sqlist;//定义出顺序表的类型
此处data是用malloc函数申请而来的空间存储。
intGetElem(SqListL,intj)
{returnL.data[j-1];}
时间复杂度为O(1)
二、按值查找
按值查找操作:表示在顺序表表中,查找出给定的关键字的元素。
intlocateElem(SeqListL,inte)
{inti;//采用i为数组的下标
for(i=0;iL.length;i++)
if(L.data==e)//当查找到的元素值与所需要的元素值相同的时候,位序值+1。因为数组下标相比于位序而言,是从0开始计数的。
returni+1;
return0;//退出循环,表示查找失败,该顺序表中无该数据元素。}
小提示:在c语言中,在对比结构体时,不能直接对比,需要对结构体中的分量分别进行对比。
时间复杂度: