go语言-golang基础-queue队列和stack堆栈

1. queue队列

队列(queue), 是一种FIFO(First In First Out)先进先出的线性表。通常用数据或者链表来实现队列。 队列只允许在后端插入,前端删除操作。

性质:

先进先出

package main

import "fmt"

func main() {
    //队列
    //先进先出
    queue := []string{}
    //push
    //append
    queue = append(queue, "a", "b")
    queue = append(queue, "c")
    //pop
    x := queue[0]
    queue = queue[1:]
    fmt.Println("1: ", x)

    x = queue[0]
    queue = queue[1:]
    fmt.Println("2: ", x)

    x = queue[0]
    queue = queue[1:]
    fmt.Println("3: ", x)

}

/*
$ go run queue.go
1:  a
2:  b
3:  c
*/

2. stack堆栈

先进后出

示例:

package main

import "fmt"

func main() {
    //堆栈
    //先进后出
    stack := []string{}
    //push
    //append
    stack = append(stack, "a")
    stack = append(stack, "b")
    stack = append(stack, "c")
    //pop
    //后面移除
    x := stack[len(stack)-1]
    stack = stack[:len(stack)-1]
    fmt.Println("1: ", x)

    x = stack[len(stack)-1]
    stack = stack[:len(stack)-1]
    fmt.Println("2: ", x)

    x = stack[len(stack)-1]
    stack = stack[:len(stack)-1]
    fmt.Println("3: ", x)
}
/*
$ go run stack.go
1:  c
2:  b
3:  a

*/