golang中用链表实现栈

golang中用链表实现栈,第1张

概述node通过prev字段进行关联,stack维护栈顶节点 stack.go package stacktype Stack struct { top *node length int}type node struct { value interface{} prev *node}// 创建一个栈func New() *Stack { node通过prev字段进行关联,stack维护栈顶节点

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中用链表实现栈所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265673.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存