數據結構-查找

數據結構實驗內容:
(1)隨機產生n個互不相同的兩位整數,構造一個查找表。
(2)輸入一個整數,利用順序查找法在查找表中查找該整數是否存在。若查找成功,返回該整數在表中的位置;查找失敗則返回0。
(3)對查找表按遞增順序進行排序。
(4)輸入一個整數,利用折半查找法在有序表中查找該整數是否存在。若查找成功,返回該整數在表中的位置;查找失敗則返回0。

`#include<stdio.h>
#include<bits/stdc++.h>
#define max 10
using namespace std;
typedef struct{
int elem[max+1];
int length;
}SSTable;

int Seach_Seq(SSTable st,int key){
int i;
st.elem[0]=key;
i=st.length;
while(st.elem[i]!=key)
i–;
return i;
}

int search_bin(SSTable st,int key){
int mid,low=1,high=st.length;
while(low<=high){
mid=(low+high)/2;
if(key==st.elem[mid])
return mid;
else if(st.elem[mid]<key)
low=mid+1;
else
high=mid-1;
}
}

int main()
{
int i,key;
SSTable st;
scanf("%d",&st.length);
for(i=1;i<=st.length;i++)
st.elem[i]=rand()%90+10;
for(i=1;i<=st.length;i++)
printf("%d “,st.elem[i]);
printf(”\n");
printf(“輸入要查找的數:\n”);
scanf("%d",&key);
printf(“順序查找的該數的位置爲:%d(返回0爲查找失敗)\n”,Seach_Seq(st,key));
sort(st.elem,st.elem+st.length);
printf(“遞增排序結果:\n”);
for(i=1;i<=st.length;i++)
printf("%d “,st.elem[i]);
printf(”\n");
printf(“折半查找的該數位置爲:%d(返回0爲查找失敗)\n”,search_bin(st,key));
}

`
運行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章