mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 01:21:38 +08:00
33 lines
544 B
Go
Executable File
33 lines
544 B
Go
Executable File
// stack_struct.go
|
|
package stack
|
|
|
|
import "strconv"
|
|
const LIMIT = 10
|
|
|
|
type Stack struct {
|
|
ix int // first free position, so data[ix] == 0
|
|
data [LIMIT]int
|
|
}
|
|
|
|
func (st *Stack) Push(n int) {
|
|
if (st.ix + 1 > LIMIT) {
|
|
return // stack is full!
|
|
}
|
|
st.data[st.ix] = n
|
|
st.ix++
|
|
}
|
|
|
|
func (st *Stack) Pop() int {
|
|
st.ix--
|
|
return st.data[st.ix]
|
|
}
|
|
|
|
func (st Stack) String() string {
|
|
str := ""
|
|
for ix:=0; ix<st.ix; ix++ {
|
|
str += "[" + strconv.Itoa(ix) + ":" + strconv.Itoa(st.data[ix]) + "] "
|
|
}
|
|
return str
|
|
}
|
|
|