/*基于线性表的查找法——顺序查找法
顺序查找的缺点是n较大时,平均查找长度较大,效率低
优点对数据元素存储没有要求,顺序存储或链式存储均可;对表中记录的有序性也没有要求
*/
#include <stdlib.h>
#include<stdio.h>
#define LIST_SIZE 20
//链表结点类型
typedef struct {
int key;
int data;
}RecordType;
//链表数组结构
typedef struct {
RecordType r[LIST_SIZE+1];
int length;
}RecordList;
//初始化链表数组
int Init_Seq(RecordList *RecordList){
if (!RecordList->r)
return -1;
else {
RecordList->length = 0;
return 1;
}
}
//设置监视哨的顺序查找法 耿国华版本
int SeqSearch(RecordList l,int k){
l.r[0].key = k;
int i = l.length;
while (l.r[i].key!=k)
i--;
return i;
}
/*不设置监视哨的顺序查找法 耿国华版本
虽然没有设置监视哨 但是还是空出来了第一个位置
如果要实现从实际地址的第一个元素开始排序 那么i的条件则改为i>=0且如果查找失败的话 返回值要设置为-1 最后在输出下标的时候就需要index+1来调整
*/
int SeqSearch(RecordList l, int k) {
int i = l.length;
while (i>=1&&l.r[i].key != k)
i--;
if (i >= 1)
基于线性表的查找法——顺序查找法
最新推荐文章于 2023-12-22 16:58:24 发布
本文详细介绍了线性表中的顺序查找法,这是一种在非有序序列中搜索目标元素的基本方法。通过遍历链表或数组,逐个比较元素直到找到目标或者遍历结束。顺序查找法虽然简单,但在大数据量下效率较低,适用于小规模数据的查找操作。
摘要由CSDN通过智能技术生成