简单的栈模型
package linkedTabl
import (
"fmt"
"testing"
)
const stackLimit = 5
type Stack struct {
val [stackLimit]int
top int
}
func NewArrayStack() *Stack {
return &Stack{
val: [stackLimit]int{},
top: 0,
}
}
func (s *Stack)Push(val int) {
s.val[s.top] = val
s.top++
}
func (s *Stack)Pop() int {
res := s.val[s.top - 1]
s.top--
return res
}
func (s *Stack)isEmpty() bool {
return s.top - 1 == -1
}
func (s *Stack)isFull() bool {
return s.top == stackLimit
}
func TestArrayStack(t *testing.T) {
s := NewArrayStack()
fmt.Println(s.isEmpty())
s.Push(1)
s.Push(2)
s.Push(3)
s.Push(4)
s.Push(5)
fmt.Println(s.isEmpty())
fmt.Println(s.Pop())
fmt.Println(s.Pop())
fmt.Println(s.Pop())
fmt.Println(s.Pop())
fmt.Println(s.isEmpty())
//fmt.Println(s.Pop())
fmt.Println(s.isFull())
fmt.Println(s.val)
}