栈
我们知道栈有三个基本操作:Push()、Pop()和Top(),分别是向栈顶压入,弹出,和查看栈顶操作。我们可以用list的方法来模拟这三个基本操作:stack.PushBack()、stack.Remove(stack.Back())和stack.Back().Value。
代码
stack := list.New()
stack.PushBack(1)
stack.PushBack(2)
stack.PushBack(3)
stack.PushBack(4)
fmt.Println(stack.Back().Value)
for stack.Len() > 0 {
fmt.Println(stack.Remove(stack.Back()))
}
输出结果:
4 #栈顶元素
4
3
2
1
队列
同样,我们还可以用queue.PushBack()与queue.Remove(queue.Front())来模拟队列的进度与出队操作。
queue := list.New()
queue.PushBack(1)
queue.PushBack(2)
queue.PushBack(3)
queue.PushBack(4)
for queue.Len() > 0 {
fmt.Println(queue.Remove(queue.Front()))
}
输出结果:
4
3
2
1
完整代码
package main
import (
"container/list"
"fmt"
)
func main() {
stack := list.New()
stack.PushBack(1)
stack.PushBack(2)
stack.PushBack(3)
stack.PushBack(4)
fmt.Println(stack.Back().Value)
for stack.Len() > 0 {
fmt.Println(stack.Remove(stack.Back()))
}
queue := list.New()
queue.PushBack(1)
queue.PushBack(2)
queue.PushBack(3)
queue.PushBack(4)
for queue.Len() > 0 {
fmt.Println(queue.Remove(queue.Front()))
}
}