順序表內查詢元素

2021-06-20 04:11:44 字數 1426 閱讀 2338

//演算法功能: 分別按序號和按內容在順序表中查詢元素

//演算法思路:

//getelem(sqlist &l, int i)查詢順序表l中第i個資料元素,直接在表中定位,並返回l.elem[i-1]

//locateelem(sqlist &l, elemtype e)查詢順序表l中與給定值e相等的資料元素,若找到

//與e相等的第1個元素則返回該元素在順序表中的序號;否則查詢失敗返回0

#include

#include

#define overflow -2

#define ok 1

#define error 0

#define list_init_size 100

#define listincrement 10

typedef int elemtype;

typedef int status;

//定義順序表儲存結構

typedef struct

sqlist;

//初始化順序表

status initlist_sq(sqlist &l)

//建立順序表

void create_sqlist(sqlist &l)

l.elem[i++] = c;

}l.length = i;

printf("輸入的順序表元素是:\n");

for(i = 0; i < l.length; i++)  //輸出新建順序表

printf("%d ", l.elem[i]);

printf("\n");

}//返回指定位置的元素

elemtype getelem(sqlist &l, int i)

//定位指定元素,如果有,返回第乙個匹配的元素的位置

int locateelem(sqlist &l, elemtype e)

int main()

create_sqlist(l);

//按序號查詢

printf("輸入查詢的位置:");

scanf("%d", &location);

while(location > l.length+1 || location < 1)

printf("第%d個元素是: %d\n", location, getelem(l, location));

//按內容查詢

printf("輸入查詢的元素:");

scanf("%d", &element);

if(!locateelem(l, element))

printf("該順序表中沒有%d這個元素。\n", element);

else

printf("%d在順序表中是第%d個元素\n", element, locateelem(l, element));

return 0;

}

順序表查詢指定元素

問題描述 本題要求實現乙個函式,要求從順序表中查詢指定元素,並返回第乙個查詢成功的元素在表中的位置序號,若查詢失敗,則返回0 函式介面定義 int locateelem sqlist l,elemtype e 其中sqlist結構定義如下 typedef structsqlist 裁判測試程式樣例 ...

元素的查詢 順序查詢

靜態查詢 方法一 對於未排序的資料 順序查詢 方法二 排好次序的資料 二分法查詢 順序查詢中分為有 哨兵 的方法和無 哨兵 的方法。方法一 順序查詢 有 哨兵 的順序查詢如下 1.思路 1 初始化建立儲存資料的結構體list 2 給靜態陣列賦初值tb.elem i 3 建立乙個 哨兵 即tb.ele...

順序表查詢

一 查詢概論 1 查詢表 查詢表是由同一型別的資料元素或記錄構成的集合。2 關鍵字 關鍵字是資料元素中某個資料項的值,又稱為鍵值,用它可以標識乙個資料元素。也可以標識乙個記錄的某個資料項 字段 稱為關鍵碼。若此關鍵字可以唯一標識乙個記錄,則稱此關鍵字為主關鍵字,所以對於不同的記錄,其主關鍵字是不相同...