資料結構實戰java實現hash表

2021-08-09 13:18:36 字數 1127 閱讀 1214

通過hash函式將字串,或者乙個數字,經過整理變為陣列的下標。

這樣我們就可以得到乙個時間複雜度為1的表。

而分離鏈結法

就是如果有倆個或以上的不同的key值hash化計算後結果相同。將這些值放在鍊錶中。

//使用分離鏈結法的hashtable 實現

public

class myhashtable

//初始化hashtable

public

myhashtable()

//實際的構造方法 1構造乙個鍊錶組,2

public

myhashtable(int size)

// 放入新的key值在hash表中

public

void

insert( anytype value)

}// 移除key值

public

void

remove( anytype value)

}//判斷是否有這個key

public boolean contains( anytype value)

//清空hash表

public

void

makeempty()

private

static final int default_table_size = 101;

private linkedlist thelists;

private

int currentsize;

//此函式將value 轉化為陣列下標

private

intmyhash(anytype value)

//如果引數是素數直接返回引數,否則返回下乙個素數

private

static

intnextprime( int n )

private

static boolean isprime( int n )

return

true;}}

資料結構實戰java實現棧

在之前的myarraylist和mylinkedlist基礎上都可以很方便的實現棧。先進後出 學習計算機基本要素可以深入了解棧的作用。直接使用arraylist的add方法加乙個代表棧指標的變數即可。由於棧不需要索引所以只需要使用單鏈表即可 public class mystack public a...

資料結構 Java實現 排序

直接插入排序 希爾排序 二分插入 簡單選擇排序 堆排序歸併排序 快速排序 氣泡排序 桶式排序 基數排序 插入排序由n 1趟排序組成,對於p 1到p n 1趟,保證位置0到p上的元素為已排序狀態。在第p趟,將位置p上的元素向左移動到正確位置。s n o n 2 public static super ...

資料結構 Java實現佇列

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 head 進行刪除操作,而在表的後端 tail 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入...