int HashSearch(HashTable T
int i=
*pos=K%m; //散列函數值作為第一個散列地址
while(i++<m) //最多探查m次
{
if(T[*pos]
if(T[*pos]
*pos=(*pos+
}
return
}//HashSearch
假設散列表上的刪除操作已將結點的關鍵字標記為DELETED(例如
typedef struct node{
KeyType key;//關鍵字
InfoType Otherinfo;//以下不處理此域
struct node *next;//鏈域
}CNodeType;
typedef CNodeType *CHashTable[m];//散列表類型是一個指針數組
void ChainHashInsert(CHashTable T
//將關鍵字K插入表T中
CNodeType *p;
int addr;
p=ChainHashSearch(T
if (p) printf(
else {//申請一個新結點
addr=K%m;//求散列函數值作為散列地址
p=(CNodeType *)malloc(sizeof(CNodeType));
p
}//endif
}//ChainHashInsert
From:http://tw.wingwit.com/Article/program/sjjg/201311/23279.html