go语言当中常见的数据结构以及常见操作方法的整理
数据结构 | 方法/操作 | 描述 |
---|---|---|
数组 | ||
arr[index] | 访问数组中指定索引的元素 | |
len(arr) | 获取数组的长度 | |
for i := 0; i < len(arr); i++ { ... } | 遍历数组 | |
切片 | ||
slice[index] | 访问切片中指定索引的元素 | |
slice[start:end] | 创建切片的子切片 | |
len(slice) | 获取切片的长度 | |
cap(slice) | 获取切片的容量 | |
append(slice, element...) | 向切片追加一个或多个元素 | |
copy(dst, src) | 复制一个切片到另一个切片 | |
slice = slice[:0] | 清空切片 | |
delete(slice, index) | 删除切片中指定索引的元素(需要手动实现) | |
映射 | ||
m[key] | 访问映射中指定键的值 | |
m[key] = value | 设置映射中指定键的值 | |
delete(m, key) | 删除映射中指定的键和值 | |
len(m) | 获取映射中键值对的数量 | |
for key, value := range m { ... } | 遍历映射 | |
栈 | ||
Push(element) | 将元素压入栈顶 | |
Pop() | 弹出栈顶元素并返回 | |
Peek() | 查看栈顶元素但不弹出 | |
IsEmpty() | 判断栈是否为空 | |
队列 | ||
Enqueue(element) | 将元素加入队列尾部 | |
Dequeue() | 从队列头部移除并返回元素 | |
Peek() | 查看队列头部元素但不移除 | |
IsEmpty() | 判断队列是否为空 | |
堆 | ||
Insert(element) | 向堆中插入元素 | |
ExtractMax() 或 ExtractMin() | 弹出并返回堆顶元素(大顶堆或小顶堆) | |
Heapify() | 堆化操作,保持堆的性质 | |
BuildHeap() | 从无序数组构建堆 |