哈希表的操作(增加,刪除,查找,顯示,退出)菜鳥經驗總結。
哈希圖 1:
哈希圖 1
前奏:散列表也叫哈希表,是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫做散列表。
最近寫了一個關於hash表的操作,在這個過程中遇到了以下幾個問題
進行階段:問題陳述
建立哈希表的節點
數組聲明
在添加操作的時候在鏈式表中添加新的元素
刪除操作
所以圍繞這幾個問題,我做了一下對應的解決方案:
哈希節點的建立:需要保存哈希的值(int n; Node *next)。
數組:首先應該建立一個空節點(節點的值不需要關心,在以後的操作中只需要過濾掉頭結點)。
哈希值的添加:找到對應的哈希節點,遍歷節點鏈表,如果沒有相同的值,就進行插入操作。對於一個新的指針節點,複製給一個新的地址,就相當於,把這個存儲數據的地址賦給“新節點”,這個節點的所有操作不會影響“原來節點”的位置(如果要刪除節點,就會影響節點)。
刪除:保存哈希的上一個節點,和下一個節點,實現節點連接(new --- delete, malloc --- free)。
尾聲:操作方法
增加:add number
刪除:delete number
查找:search number
顯示:show
退出:quit
實現效果截圖:
下載地址:點擊打開鏈接