哈希表的鏈式存儲

哈希表的操作(增加,刪除,查找,顯示,退出)菜鳥經驗總結。

哈希圖 1:

哈希圖 1

        前奏:散列表也叫哈希表,是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫做散列表。

最近寫了一個關於hash表的操作,在這個過程中遇到了以下幾個問題


進行階段:問題陳述

          建立哈希表的節點

          數組聲明

          在添加操作的時候在鏈式表中添加新的元素

          刪除操作

  

所以圍繞這幾個問題,我做了一下對應的解決方案:


          哈希節點的建立:需要保存哈希的值(int n; Node *next)。

          數組:首先應該建立一個空節點(節點的值不需要關心,在以後的操作中只需要過濾掉頭結點)。

          哈希值的添加:找到對應的哈希節點,遍歷節點鏈表,如果沒有相同的值,就進行插入操作。對於一個新的指針節點,複製給一個新的地址,就相當於,把這個存儲數據的地址賦給“新節點”,這個節點的所有操作不會影響“原來節點”的位置(如果要刪除節點,就會影響節點)。

          刪除:保存哈希的上一個節點,和下一個節點,實現節點連接(new --- delete, malloc --- free)。


尾聲:操作方法 

                                     增加:add number                 

                                     刪除:delete number              

                                     查找:search number                

                                     顯示:show                        

                                     退出:quit

實現效果截圖:


下載地址:點擊打開鏈接


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章