基本介紹
雜湊表管理學生資訊概圖
示例**
@data
public
class
student';
}public
student
(int id, string name, string ***, string address)
}
public
class
studentlinkedlist
/*如果鍊錶為空,直接將節點新增到鍊錶的頭節點即可*/if(
isempty()
) student temp = head;
while
(true
) temp = temp.
getnext()
;}temp.
setnext
(student);}
/** * 顯示鍊錶下的元素
*/public
void
show()
student temp = head;
while
(true
) temp = temp.
getnext()
;}}/**
* 判斷鍊錶是否為空
** @return
*/public
boolean
isempty()
/** * 根據編號獲取鍊錶節點資訊
** @param no
* @return
*/public student findbyid
(int no)
student temp = head;
while
(true)if
(temp.
getnext()
== null)
temp = temp.
getnext()
;}return temp;
}/**
* 根據編號刪除編號對應節點
** @param id
*/public
void
remove
(int id)
/*如果頭節點即為待刪除的節點,直接修改頭節點即可*/
if(head.
getid()
== id)
student temp = head;
while
(true)if
(temp.
getnext()
.getid()
== id)
temp = temp.
getnext()
;}}}
public
class
hashtable
public
hashtable
(int size)
public
void
add(student student)
studentlinkedlistarray[
hashfun
(student.
getid()
)].add
(student);}
public student findbyid
(int no)
public
void
removebyid
(int no)
/** * 初始化hashtable鍊錶的數值的第乙個元素(head節點),不然會報npe
** @param studentlinkedlistarray
*/private
void
innithashtable
(studentlinkedlist[
] studentlinkedlistarray)
for(
int i =
0; i < studentlinkedlistarray.length; i++)}
public
void
show()
}/**
* 獲取雜湊數值,這裡的計算函式很簡單,真正的hashtable雜湊值的計算可能會很複雜,出現雜湊碰撞的概率基本為0
** @param id
* @return
*/private
inthashfun
(int id)
}
資料結構 字典hashtable
redis的資料庫就是使用字典來作為底層實現的,對資料庫的增 刪 查 改操作也是構建在對字典的操作之上的。舉個例子,當我們執行命令 redis set msg hello world 在資料庫中建立乙個鍵為 msg 值為 helloworld 的鍵值對時,這個鍵值對就是儲存在代表資料庫的字典裡面的。...
資料結構與演算法 Hash Table
參考自 談談 hash table 雜湊表是一種資料結構,實現key value的快速訪問。之前說過陣列可以實現快速隨機訪問,所以雜湊表肯定會使用到陣列。在這裡,我們把每乙個陣列的單元叫做乙個bucket 桶 雜湊表的大小最好是素數。雜湊表是乙個在時間和空間上做出權衡的經典例子。如果沒有記憶體限制,...
資料結構 Hashtable 閉雜湊
雜湊表是常見資料結構中一種擁有高效插入,高效查詢的結構,時間複雜度為o 1 閉雜湊雜湊的不足之處就是隨著衝突的資料增多,插入的效率也會隨之變慢,為了優化閉雜湊雜湊的效率,我們可以採取以下的方式 1.當插入的資料佔總大小的一定比率的時候,也稱負載因子,我們可以對雜湊表進行擴容,重新通過雜湊函式求得位置...