go: 实现一个栈stack 可以用简单的slice来实现。 ``` // Stack ... type Stack struct { inner []byte } // Push ... func (s *Stack) Push(v byte) { s.inner = append(s.inner, v) // Push } // Pop ... func (s *Stack) Pop() byte { n := len(s.inner) - 1 // Top element v := s.inner[n] s.inner = s.inner[:n] // Pop return v } // Peek ... func (s *Stack) Peek() byte { n := len(s.inner) - 1 // Top element v := s.inner[n] return v } // Len ... func (s *Stack) Len() int { return len(s.inner) } ``` 也可以用 collections里的库,链表实现的,线程不安全 ``` import ( stackLib "github.com/golang-collections/collections/stack" ) stack := stackLib.New() // stack.Len() stack.Peek() stack.Pop() stack.Push(v) ``` 来自 大脸猪 写于 2021-06-01 15:50 -- 更新于2021-06-01 15:58 -- 0 条评论