程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 閉散列表的查找、插入和刪除操作的完整C代碼

閉散列表的查找、插入和刪除操作的完整C代碼

編輯:關於C語言

閉散列表的查找、插入和刪除操作的完整C代碼


/*閉散列表的建立、查找、插入、刪除*/
#include 

#define NIL -1  //假設關鍵字為非負整數
#define DEL -2

typedef int KeyType;
KeyType HashTable[13];  //便於驗證算法,關鍵字個數假定為不超過13,哈希表長定為13

//關鍵字插入函數
void InsertHashTable(KeyType k)
{
	for(int i=0; i<13; i++)
		if( NIL == HashTable[(k%13+i)%13] || DEL == HashTable[(k%13+i)%13] ) {
			HashTable[(k%13+i)%13] = k;
			break;
		}

}

//哈希表的查找操作,查找成功則返回下表,否則返回-1
int HashSearch(KeyType k)
{
	int i = 0;
	while( i<13 ) {
		if( k == HashTable[((k%13)+i)%13] ) 
			return ((k%13)+i)%13;

		else if( NIL == HashTable[((k%13)+i)%13] ) 
			return -1;
		i++;
	}
	if( 13 == i ) 
		return -1;
}

//創建哈希表
void CreateHashTable()
{
	int n;
	KeyType key;
	for(int i=0; i<13; i++)
		HashTable[i] = NIL;
	printf("請輸入關鍵字的個數:\n");
	scanf("%d", &n);
	printf("請輸入%d個關鍵字的值:\n", n);
	for(i=0; i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved