資料結構 5 1 順序表的查詢以及二分查詢的實現

2022-06-01 02:03:08 字數 2937 閱讀 3115

類的結構如下:

class

staticsearchtable ;

類的建構函式,這裡加入了乙個標誌flag用來區分要建立的是順序表還是無序表(有序錶即執行一次選擇排序)

staticsearchtable::staticsearchtable(int n,bool

flag)

data_number = n + 1

;

if(flag)

}

二分法查詢:

int staticsearchtable::search_bs(int

key)

else

if (key

else

}return

result;

}

直接查詢,引入哨兵機制,減少判斷次數:

int staticsearchtable::search_seq(int

key)

所有查詢如果失敗都是返回0,在主函式**中加乙個判斷即可

下面給出選單設計:

第一層選單

void menu()//

模擬選單選項

view code

第二層選單

void sortedmenu()//

有序順序表模擬選單選項

view code

總測試函式(通過switch case 和死迴圈來實現,最後的return 0以及 system(pause)可以刪去,因為按0直接是exit(0))

int

main()

break

; }

case

2://

有序順序表查詢

if (result > 0

) cout

<< "

查詢成功,為第

"<< result << "

個元素.

"<

else

cout

<< "

查詢失敗,沒有關鍵字為

"<< k << "

的元素.

"<

}break

; }

case0:

exit(0);

default

: cout

<< "

您輸入的選項有誤,請重新輸入:";}}

system(

"pause");

return0;

}

view code

完整**:

/*

設計查詢順序錶類,實現順序表(在無序和有序兩種情況)

的順序查詢和折半查詢等操作。

*/#include

#include

using

namespace

std;

class

staticsearchtable ;

staticsearchtable::staticsearchtable(

int n,bool

flag)

data_number = n + 1

;

if(flag)

}bool staticsearchtable::search_seq(int loc,int

key)

return data[loc] ==key;

}int staticsearchtable::search_seq(int

key)

int staticsearchtable::search_bs(int

key)

else

if (key

else

}return

result;

}void

staticsearchtable::select_sort()}}

flag = true;//

是順序表

}void

staticsearchtable::print()

else

for (int i = 1; i < data_number; i++)

cout

<

}void menu()//

模擬選單選項

void sortedmenu()//

有序順序表模擬選單選項

intmain()

break

; }

case

2://

有序順序表查詢

if (result > 0

) cout

<< "

查詢成功,為第

"<< result << "

個元素.

"<

else

cout

<< "

查詢失敗,沒有關鍵字為

"<< k << "

的元素.

"<

}break

; }

case0:

exit(0);

default

: cout

<< "

您輸入的選項有誤,請重新輸入:";}}

system(

"pause");

return0;

}

view code

測試結果:

資料結構順序表的查詢 資料結構 2 1順序表

線性結構是資料結構中最基礎 最簡單的一種資料結構型別,其中最典型的就是線性表 具有 相同特性 的資料元素的 有限序列 相同特性 所有元素屬於同一資料型別 有限資料元素個數是有限的 序列資料元素由邏輯序號唯一確定 用邏輯序號來確定的特性使得線性表中可以有多個相同值的元素 線性表中所含元素的個數叫做線性...

資料結構25 順序表查詢

四.參考資料 順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程 從表中第乙個 或最後乙個 記錄開始,逐個進行記錄的關鍵字和給定值比較,若找到則查詢成功,如果直到最後乙個 或者第乙個 記錄,都未找到,則表中沒有所查詢的資料,查詢失敗 1.基本演算法 include 順序查詢,a為查詢的陣列 陣列...

資料結構 之順序表查詢

總結順序查詢又叫線性查詢,是最基本的查詢技術,他的查詢過程是 從表中第乙個 或最後乙個 記錄開始,逐個進行記錄的關鍵字和給定值比較,若記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果直到最後乙個 或第乙個 記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢失敗。a為陣列,n為要...