資源描述:
《數(shù)據(jù)結(jié)構實驗五查找的實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、實驗五查找的實現(xiàn)一、實驗內(nèi)容1、建立一個線性表,對表中數(shù)據(jù)元索存放的先后次序沒冇任何要求。輸入待杳數(shù)據(jù)元素的關鍵字進行杳找。為了簡化算法,數(shù)據(jù)元素只含一個整型關鍵字字段,數(shù)據(jù)元素的其余數(shù)據(jù)部分忽略不考慮。建議采用前哨的作用,以捉高查找效率。2、查找表的存儲結(jié)構為有序表,輸入待查數(shù)據(jù)元素的關鍵字利用折半查找方法進行查找。此程序中要求對整型量關鍵字數(shù)據(jù)的輸入按從小到大排序輸入。二、源代碼和執(zhí)行結(jié)果1、#includeusingnamespacestd;#dcfincMAX100#defineKeyTypeinttypedefstruct{KcyTypckey;[
2、DataType;typedefstruct{DataTypcclcm[MAX];intlength;JSeqTable,*PSeqTable;PSeqTableInit_SeqTable(){PSeqTablep=(PSeqTable)malloc(sizeof(SeqTable));if(p!=NULL){p->length=0;returnp;)elsecout?nOutofspace!n?endl;returnNULL;intinsert_SeqTable(PSeqTablep,KeyTypex){if(p->length>=MAX){cout?novcrflow!H?
3、cndl;return0;}p->elem[p->length]?key=x;p->length++;return1;}intSeqSearch(SeqTables,KeyTypek){intn,i=0;n=s」ength;s.elem[n].key=k;while(s.elem[i].key!=k)i++;if(i==n)return-1;elsereturni;}voidmain(){PSeqTablep;inti,n;KeyTypea;p=Init_ScqTablc();cout?n請輸入數(shù)據(jù)個數(shù):”;cin?n;cout?HiW輸入數(shù)據(jù):”?endl;for(i=0;i
4、5、m>usingnamespacestd;#defineMAX100#defineKeyTypeinttypedefstruct{KeyTypekey;}DataType;typedefstructDataTypeelem[MAXJ;intlength;(BinTable,*PBinTable;PBinTableInit_BinTable(){PBinTablep=(PBinTablc)malloc(sizcof(BinTablc));if(p!=NULL){p->length=0;returnp;}else{cout?nOutofspace!n?endl;returnNULL;
6、intinsert_BinTable(PBinTablep,KeyTypex){if(p->length>=MAX){coul?Hoverflow!M?endl;return0;}p->elemfp->length].key=x;p->lcngth++;return1;}intBinSearch(BinTables,KeyTypek){intlow、mid,high;low=0;high=slength?1;while(low<=high){mid=(low+high)/2;if(s.elem[midj.key==k)returnmid;elseif(s.elem[mid].k
7、ey>k)high=mid-1;elselow=mid+1;return;voidmain(){PBinTablep;inti,n;KeyTypea;p=Init_BinTable();cout?**請輸入數(shù)據(jù)個數(shù):”;cin?n;cout?-W按從小到大的順序輸入數(shù)據(jù):n?endl;for(i=0;i