雜湊鍊錶的演算法實現
#includeusing namespace std;
#define tablesize 16
typedef struct hashnode hashnode;
typedef hashnode* node;
typedef hashnode* element;
typedef struct hashtable hashtable;
//雜湊函式:求餘法
int hashfunction(int key, int tablesize)
//雜湊表的初始化
hashtable* inithashtable(int tablesize)
for (int i = 0; i < tablesize; i++) else
} return table;
}//雜湊表查詢元素:返回與當前鍵相同的雜湊節點
element hashtabelfind(hashtable* table, int key)
//雜湊表的插入
void hashtableinsert(hashtable* table, int key,void* value)
}//雜湊表元素的刪除
void hashtabledelete(hashtable* table, int key)
if (element)
}//銷毀雜湊表
void hashtableclear(hashtable* table)
delete tmp;
} delete table->thelists;
delete table;
}int main(void) ;
hashtable* table = inithashtable(31);
//2.插入
hashtableinsert(table, 1,elems[0]);
hashtableinsert(table, 2,elems[1]);
hashtableinsert(table, 3,elems[2]);
//3.刪除
hashtabledelete(table, 3);
//4.遍歷
for (int i = 1; i < 3; i++)
//5.刪除雜湊表
hashtableclear(table);
return 0;
}
資料結構和演算法 雜湊演算法
前面我們學習了雜湊表,雜湊函式,和雜湊演算法啥關係?其實不管雜湊還是雜湊,都是翻譯的差別,對於英文都是hash,所以雜湊 雜湊 hash 雜湊演算法的定義 將任意長度的二進位制串對映為固定長度的二進位制串,這種對映規則就是雜湊演算法。通過原始資料對映成的規定固定長度的二級制串就是雜湊值乙個優秀的雜湊...
資料結構和演算法 雜湊演算法
一 定義 1 將任意長度的二進位制值串對映為固定長度的二進位制值串,這個對映的規則就是雜湊演算法。通過原始資料對映之後得到的二進位制值串就是雜湊值。二 hash演算法編寫要求 從雜湊值不能反向推導出原始資料 對輸入資料非常敏感,哪怕原始資料只修改了乙個bit,最後得到的hash值也會變化 雜湊衝突的...
資料結構和演算法 9 雜湊表
建立雜湊表,管理多條鍊錶 class hashtab 新增員工 public void add emp emp 根據輸入id查詢員工 public void findempbyid int id else 遍歷所有的hash表 public void list 簡單的取模法,雜湊函式 public ...