//雜湊表查詢演算法(hash)
#include #include #define true 1
#define false 0
#define hashsize 7
#define nullkey -32768 //無效索引
typedef int status;
int m = 0; // 雜湊表表長
typedef struct
hashtable;
/*初始化*/
status init(hashtable *hashtable)
return true;
}/*雜湊函式(除留餘數法)*/
int hash(int data)
/*插入*/
void insert(hashtable *hashtable, int data)
//插入值
hashtable->elem[hashaddress] = data;
}/*查詢*/
int search(hashtable *hashtable, int data)
//查詢成功
return hashaddress;
}/*列印結果*/
void display(hashtable *hashtable)
printf("\n//******************************//\n");
}int main()
; printf("***************hash雜湊演算法***************\n");
m = hashsize;
//初始化雜湊表
init(&hashtable);
//插入資料
for (i = 0; i < hashsize; i++)
display(&hashtable);
//查詢資料
result = search(&hashtable, 29);
if (result == -1)
printf("對不起,沒有找到!\n");
else
printf("29在雜湊表中的位置是:%d\n", result);
return 0;
}
c 資料結構 雜湊表
雜湊表 雜湊表 hashtable 又叫雜湊表,是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法函式既所...
C 資料結構 20 雜湊
雜湊 hash map 是最快的資料結構演算法,但是插入資料是以無序的方式插入的,所以資料是沒有排序的.二叉樹 tree map 比雜湊慢點 o logn 但是二叉樹是以排序方式插入的 大的資料在根的右邊,小的資料在根的左邊 雜湊不是標準的stl,但是vs裡面可以直接包含直接使用 ifndef li...
C 中常用的雜湊結構
以下主要談談set和map 集合底層實現 是否有序 數值是否可以重複 能否改變量值 查詢效率 增刪效率 set紅黑樹有序否 否o logn o logn multiset 紅黑樹有序是否 o logn o logn unordered set 雜湊表無序否否 o 1 o 1 c 中提供了三種set資...