code kata 230819

This commit is contained in:
VicRen
2023-08-19 13:46:44 +08:00
parent 3a0218e103
commit 5a486d38b2
2 changed files with 152 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
package main
type Stack []interface{}
func MakeStack() *Stack {
return &Stack{}
}
func (s Stack) Len() int {
return len(s)
}
func (s Stack) IsEmpty() bool {
return len(s) == 0
}
func (s Stack) Top() interface{} {
if s.IsEmpty() {
return nil
}
return s[len(s)-1]
}
func (s *Stack) Push(item interface{}) {
*s = append(*s, item)
}
func (s *Stack) Pop() interface{} {
if s.IsEmpty() {
return nil
}
ret := (*s)[(*s).Len()-1]
*s = (*s)[:len(*s)-1]
return ret
}