切片模拟栈操作
func main() {
stack := make([]int, 0)
stack = append(stack, 5)
val := stack[len(stack)-1]
stack = stack[:len(stack)-1]
fmt.Println(val, len(stack) == 0)
}
切片模拟队列操作
方法1,不保留队列中的数据
func main() {
queue := make([]int, 0)
queue = append(queue, 6)
val := queue[0]
queue = queue[1:]
fmt.Println(val, len(queue) == 0)
}
方法2,保留队列中的数据
func main() {
queue := make([]int, 0)
head, tail := 0, 0
queue = append(queue, 5)
tail += 1
val := queue[head]
head += 1
queue = append(queue, 6)
tail += 1
val = queue[head]
head += 1
fmt.Println(val, len(queue))
}