stack.go
中的源代码将分四个部分介绍。第一部分如下:
stack.go
的第二部分包含了 Push()
函数的实现:
func Push(v int) bool {
if stack == nil {
stack = &Node{v, nil}
size = 1
return true
}
temp := &Node{v, nil}
temp.Next = stack
size++
return true
}
第三部分包含 Pop()
函数的实现:
stack.go
的第四个代码段如下:
func traverse(t *Node) {
if size == 0 {
fmt.Println("Empty Stack!")
return
}
fmt.Printf("%d -> ", t.Value)
t = t.Next
}
fmt.Println()
}
stack.go
的最后一部分如下:
如你所见,stack.go
的源代码比 queue.go
的稍微短一点,这主要是因为栈背后的思想比队列更简单。
Pop() failed!
100 ->
200 -> 100 ->
9 8 7 6 5 4 3 2 1 0 200 100