以下**以陣列儲存方式實現了雜湊表的建立,查詢,插入,刪除等操作,雜湊函式採用除留餘數法,使用開放定址法中的線性探查法處理衝突
public
class hashsearch
}public
intcollision(int d,int hashsize)
public
inthashfunc(int key,int hashsize)
/*hashtable的查詢*/
public
inthashsearch(nodehashtable,int x)
if(hashtable[addr]!=null && hashtable[addr].key==x) //查詢成功
return addr;
else
return -addr; //查詢失敗
}/*雜湊表的插入*/
public
inthashinsert(nodehashtable,int x)
/*雜湊表的建立*/
public
void
createhash(nodehashtable,int items)
for(i=0;i//依次向雜湊表中插入元素}}
/*雜湊表的刪除*/
public
inthashdelete(nodehashtable,int x)
return
0; }
/*雜湊表的顯示*/
public
void
displayhash(nodehashtable)
system.out.print("\n關鍵字: ");
for(i=0;iif(hashtable[i]!=null && hashtable[i].delflag==false)
else system.out.print(","+" ");}}
public
static
void
main(string args) ;
node hashtable=new node[7];
hashsearch hs=new hashsearch();
hs.createhash(hashtable, items);
hs.displayhash(hashtable);
int addr;
addr=hs.hashsearch(hashtable, 59);
system.out.println("\n"+addr);
hs.hashdelete(hashtable, 34);
hs.displayhash(hashtable);
}}
鍊錶實現的雜湊表(Java版)
public class separatechaininghashtable suppresswarnings unchecked public separatechaininghashtable int size make the hash table logically empty public...
雜湊表(雜湊表)的實現
雜湊函式直接用key size的形式,size為雜湊表的大小。衝突處理採用平方探測法,為保證可以探測到整個雜湊表空間,雜湊表大小設定為4k 3形式的素數。當雜湊表中的元素過多時會造成效能下降,這時應該倍增雜湊表的大小,重新計算原來雜湊表中每個元素在新的雜湊表中的位置。雜湊表的實現 hashtable...
陣列 鍊錶 實現簡單的雜湊
package com.cai.math 雜湊雜湊 之 陣列 鍊錶 這裡將要實現的部分 雜湊雜湊是一種資料結構 public class hashtablinked 陣列鍊錶 用取模的方法,存放資料到陣列對應的位置 class arraylinked 實現增,查 public static void...