美文网首页
使用Golang实现栈的链式存储

使用Golang实现栈的链式存储

作者: 萧末 | 来源:发表于2017-10-23 11:07 被阅读0次

栈就像一个水杯后进先出,栈的链式存储中后进去元素的next总是指向先进去的元素, 栈顶元素总是和最后一个进去的元素相同

type Elem int

// Node 元素节点结构

type Node struct {

data Elem

next *Node

}

// StackLink 栈

type StackLink struct {

top    *Node // 栈顶元素

length int

}

// InitStack 初始化一个栈,栈先进后出

func (s *StackLink) InitStack() {

s.top = nil

}

// Push 添加一个栈元素

func (s *StackLink) Push(data Elem) {

// 创造一个节点

node := new(Node)

node.data = data

node.next = s.top

s.top = node

s.length++

}

// Pop 弹出一个元素

func (s *StackLink) Pop(e *Elem) error {

if s.Empty() {

return errors.New("empty stack")

}

*e = s.top.data

node := s.top

s.top = node.next

s.length--

return nil

}

// Empty 是否为空栈

func (s *StackLink) Empty() bool {

return s.top == nil

}

// Length 栈的元素个数

func (s *StackLink) Length() int {

return s.length

}

相关文章

  • 使用Golang实现栈的链式存储

    栈就像一个水杯后进先出,栈的链式存储中后进去元素的next总是指向先进去的元素, 栈顶元素总是和最后一个进去的元素...

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

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

  • 数据结构基础--链式栈

    链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不...

  • 《数据结构》第三章:栈和队列

    3.1.1栈的基本概念 3.1.2栈的顺序存储实现 3.1.3栈的链式存储实现 3.2.1队列的基本概念 3.2....

  • 顺序存储/链式存储设计栈结构

    一、顺序存储1.1 定义常量及结构 1.2 栈方法实现 二、链式存储2.1 定义常量及结构 2.2 栈方法实现

  • 数据结构实验1.4:栈和队列

    实验内容 : 1.采用链式存储实现栈的初始化、入栈、出栈操作。2.采用顺序存储实现栈的初始化、入栈、出栈操作。3....

  • 基于顺序存储/链式存储设计栈结构

    基于顺序存储/链式存储设计栈结构 栈限定性数据结构,先进后出。 顺序存储栈 链式存储栈

  • 顺序存储结构栈 共享栈 链式存储结构栈

  • 数据结构与算法学习-004(栈)

    1、栈的结构 栈结构遵循先进后出的原则,进栈和出栈都从栈顶进行操作;我们可以用顺序存储和链式存储两种方式来实现栈。...

  • Golang实现队列链式存储

    队列,顾名思义就是像排队一样,先来先到,先进先出。 type Elem int type Node struct ...

网友评论

      本文标题:使用Golang实现栈的链式存储

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