stack.go
package stacktype Stack struct { top *node length int}type node struct { value interface{} prev *node}// 创建一个栈func New() *Stack { return &Stack{nil,0}}// 取栈长度func (s *Stack) Len() int { return s.length}// 查看栈顶元素func (s *Stack) Peek() interface{} { if s.length == 0 { return nil } return s.top.value}// 出栈func (s *Stack) Pop() interface{} { if s.length == 0 { return nil } n := s.top s.top = n.prev s.length-- return n.value}// 入栈func (s *Stack) Push(value interface{}) { n := &node{value,s.top} s.top = n s.length++}
main.go
package mainimport ( "./stack" "fmt")func main() { st := stack.New() st.Push(111) st.Push(222) fmt.Println(st.Peek(),st.Len()) item := st.Pop() fmt.Println(item) fmt.Println(st.Peek(),st.Len())}
输出:
222 2222111 1总结
以上是内存溢出为你收集整理的golang中用链表实现栈全部内容,希望文章能够帮你解决golang中用链表实现栈所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)