hash散列表
哈希表(也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
下面我们来写一个简单的hash散列表,首先对上一节中的代码我们做一些改进,在这里我们声明一个结构体类型,作为几点数据的类型,然后对代码的参数进行一些修改。
package LinkNodes
import (
"fmt"
)
//用结构体做数据域的类型
type DM struct {
K string
V string
}
//声明全局变量,保存头节点
var head *Node
var curr *Node //当前节点
//声明节点类型
type Node struct {
//数据域
Data DM
//地址域
NextNode *Node
}
//创建头节点
func CreateHeadNode(k string, v string) *Node {
var node *Node = new(Node)
// 设置数据结构体中的数据域
node.Data.K = k
node.Data.V = v
//设置地址域
node.NextNode = nil
//保存头节点
head = node
curr = node
return node
}
//在指定的节点(curr)添加新节点
func AddNode(k string, v string, curr *Node) *Node {
var newNode *Node = new(Node)
//设置新节点重的数据域
newNode.Data.K = k
newNode.Data.V = v
//设置地址域
newNode.NextNode = nil
//挂接节点
curr.NextNode = newNode
curr = newNode
retur