c 雜湊結構

2022-06-17 03:18:10 字數 1151 閱讀 4723

//雜湊表查詢演算法(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資...