資源描述:
《數(shù)據(jù)結(jié)構(gòu)實驗 折半查找》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實驗四第九章折半查找【源代碼】#include#include#include#defineLENGTH10typedefintElemType;typedefintKeyType;typedefstruct{ElemType*elem;intlength;}SSTable;voidInit_ST(SSTable&ST){//初始化靜態(tài)表inti;ST.length=LENGTH;printf("請按大小順序輸入一個順序表共%d個元素!
2、n",ST.length);ST.elem=(ElemType*)malloc((ST.length+1)*sizeof(ElemType));for(i=1;i<=ST.length;i++){scanf("%d",&ST.elem[i]);}}intSearch_Bin(SSTableST,KeyTypekey){//在有序表ST中折半查找其關(guān)鍵字等于key的數(shù)據(jù)元素.若找到,則函數(shù)值為該元素的位置,否則為0intlow,high,mid;low=1;high=ST.length;while
3、(low<=high){mid=(low+high)/2;if(key==ST.elem[mid])returnmid;elseif(key4、idmain(){intj,k,t,w;SSTableST;t=1;printf("*************歡迎使用折半查找程序:**********");printf("*********1.靜態(tài)表的初始化**********");printf("*********2.查找元素**********");printf("*********3.退出操作**********");while(t){printf("請選擇需要使用的功能:");scanf("%d",&j);swit
5、ch(j){case1:Init_ST(ST);Display(ST);break;case2:printf("請輸入要查找的元素:");scanf("%d",&k);w=Search_Bin(ST,k);if(w)printf("您要查找的%d是第%d個元素",k,w);elseprintf("您要查找的%d在表中不存在!",k);Display(ST);break;case3:t=0;Display(ST);break;default:printf("輸入錯誤!請重新輸入!謝謝!
6、");break;}}}【程序運行截圖】