1.輸入一批有序的整形數值,利用折半插找的演算法實現查詢某數的過程。
2.利用一批資料(不超過13個數),構建一棵二叉排序樹,並實現中序遍歷該樹。
3.將上面的資料利用長度為15的雜湊表儲存,輸出儲存後的雜湊表。雜湊函式採用key%13。
4.根據全班學生的姓名,用拉鍊法解決碰撞的方法構造乙個雜湊表,選擇適當的雜湊函式,設計並實現插入、刪除和查詢演算法。
5.設計主函式,上機實現。
#include #include #include #include #define maxn 100
using namespace std;
#define n 30
typedef struct node1
node;
node *hashtable[n];
typedef struct node
dsnode,*dstree;
int data[maxn];
int hs (int data,int n,int t)
return 0;
}void charu(dstree &t,int t)
else if(tdata)
charu(t->lchild,t);
else if(t>t->data)
charu(t->rchild,t);
}void creat(dstree &t)
//printf("%p\n",t);
}int s[15],cnt=0;
int tt[15];
void bianli(dstree t)
}void h(int key)}}
}int hh(char name)
return -1;
}void creathashmap(dstree t)
int delhh(char name)
p=s;
}return -1;
}int main()
//search hash
printf("\n查詢tony\n");
int kk=searchh("tony");
if(kk==-1)
printf("無此人\n");
else
printf("此人存在於hashmap%d的第%d個\n",hh(name),kk);
printf("\n刪除tony\n");
kk=delhh("tony");
if(kk==-1)
printf("無此人\n");
else
printf("刪除成功\n");
printf("\n再次查詢tony\n");
kk=searchh("tony");
if(kk==-1)
printf("無此人\n");
else
printf("此人存在於hashmap%d的第%d個\n",hh(name),kk);
return 0;}/*
102 3 6 9 15 18 19 52 62 69
6290
8956
3243
5363
5286
9575
65-1
asfdsdsgsd
jhsdfjksdf
kjsdjk
dsfjlsl
kfkjrfer
jfksjk
tony
sdjfl
dfkll
skdjf
fdsjsd
lljj
end*/
查詢 資料結構
分類 資料結構與演算法 c c 2012 07 24 16 17 614人閱讀收藏 舉報幾種查詢演算法 順序查詢,折半查詢,分塊查詢,雜湊表 一 順序查詢的基本思想 從表的一端開始,向另一端逐個按給定值kx 與關鍵碼進行比較,若找到,查詢成功,並給出資料元素在表中的位置 若整個表檢測完,仍未找到與k...
資料結構 查詢
查詢 searching 也稱 檢索,查表,就是在大量的資訊集中尋找乙個特定的資訊元素。查詢就是根據 給定的關鍵字值,在 查詢表中確定乙個關鍵字等於給定的 記錄或資料元素。若存在這樣的資料元素,則稱查詢成功的,否則查詢不成功。查詢是許多重要的電腦程式中 最耗費時間的部分,查詢演算法的優劣密切關係著查...
資料結構 查詢
一.靜態查詢表 靜態查詢表是僅對查詢表進行查詢操作,而不能改變其中資料的線性表,可以是基於陣列的順序儲存或以線性鍊錶儲存。靜態查詢表主要有順序表 有序順序表和索引順序表三種。1.順序查詢 函式模型 int seqsearch element list,int searchnum,int n 2.折半...