美文网首页
用链表实现栈(go版本)

用链表实现栈(go版本)

作者: 小王同学123321 | 来源:发表于2022-05-22 15:46 被阅读0次

//文件遍历
//轻量级 数组栈 深度遍历 数组队列,广度遍历
//重量级 链表栈 深度遍历 链表队列,广度遍历

package main

import "fmt"

//链表实现堆栈,头部插入头部删除

type Node struct {
    data interface{}
    pNext *Node
}

type LinkStack interface {
    IsEmpty() bool
    Push(data interface{})
    Pop() interface{}
    Length() int
}

func NewStack() *Node{
    return &Node{}
}

func (n *Node)IsEmpty() bool{
    if n.pNext == nil{
        return true
    }else{
        return false
    }
}

func (n *Node)Push(data interface{}){
    newnode := &Node{
        data:data,
        pNext:nil,
    }
    newnode.pNext=n.pNext
    n.pNext=newnode
}

func (n *Node)Pop() interface{}{
    if n.IsEmpty() == true{
        return nil
    }
    value := n.pNext.data
    n.pNext = n.pNext.pNext
    return value
}

func (n *Node)Length() int{
    nodenext := n
    nodelength := 0
    for nodenext.pNext != nil{
        nodenext=nodenext.pNext
        nodelength++
    }
    return nodelength
}

func main(){
    mystack := NewStack()
    for i:=0;i<10000000;i++{
        mystack.Push(i)
    }
    for data := mystack.Pop();data != nil;data=mystack.Pop(){
        fmt.Println(data)
    }
}

相关文章

  • 用链表实现栈(go版本)

    //文件遍历//轻量级 数组栈 深度遍历 数组队列,广度遍历//重量级 链表栈 深度遍历 链表队列,广度遍历

  • 2022-02-24 025,024 链表反转,链表中的两数相

    链表反转:思路采用栈,而栈可以用slice的思路实现Go版本 链表两数相加:纯粹的反转相加,注意考虑类似于l1=[...

  • Go 中的分段栈和连续栈的区别?

    分段栈 用双向链表链接的很多小的stack 段,Go 1.3 版本之前 ,使用的栈结构是分段栈扩容和缩容影响性能 ...

  • 链表实现栈(LIFO)、队列(FIFO)

    今天来用链表实现栈 栈可以用链表实现,压栈操作即在链表头赋值,弹栈只需要将链表头元素指向下一个即可 由此可见,链表...

  • 用链表实现队列(go版本)

    //文件遍历//轻量级 数组栈 深度遍历 数组队列,广度遍历//重量级 链表栈 深度遍历 链表队列,广度遍历

  • 2018-07-09顺序表实现栈

    栈的实现 ——直接用顺序表(列表list)进行 栈结构实现 栈可以用顺序表实现,也可以用链表实现。 栈的操作 St...

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • 链栈及简单实现

    链栈 用带有头节点的单链表实现的栈。用头节点当栈顶指针。 当top.Next==null时,栈空。 实现 Node...

  • 用数组实现栈、队列

    用数组实现一个栈 用数组实现一个队列 用单链表实现给队列

  • (5)Go实现链表栈

    链表在对头节点进行操作时,时间复杂度是O(1),因此用链表来实现栈是一种不错的方式 有bug欢迎指出,转载请注明出处。

网友评论

      本文标题:用链表实现栈(go版本)

      本文链接:https://www.haomeiwen.com/subject/pawcprtx.html