数据结构【Golang】--------LinkedStack

该文章介绍了如何在Golang中定义一个栈数据结构,包括使用结构体Node和Stack,以及实现Stack的方法如检查是否为空(IsEmpty),获取长度(len),压入(Push),弹出(Pop),查看栈顶元素(Peak)和显示所有元素(Show)。
摘要由CSDN通过智能技术生成

目录

1.结构定义

2.IsEmpty()

3.len() 

4.Push() 

 5.Pop()

 6.Peak()

 7.Show()


1.结构定义

type Node struct {
	Val  any
	Next *Node
}

type Stack struct {
	Top    *Node
	Length int
}

2.IsEmpty()

func (stack *Stack) IsEmpty() bool {
	return stack.Length == 0
}

3.len() 

func (stack *Stack) len() int {
	return stack.Length
}

4.Push() 

func (stack *Stack) Push(data any) {
	newstack := &Node{}
	newstack.Val = data
	newstack.Next = stack.Top
	stack.Top = newstack
	stack.Length++
}

 5.Pop()

func (stack *Stack) Pop() any {
	result := stack.Top.Val
	if stack.Top.Next == nil {
		stack.Top = nil
	} else {
		stack.Top.Val = stack.Top.Next.Val
		stack.Top.Next = stack.Top.Next.Next
	}
	stack.Length--
	return result
}

 6.Peak()

func (stack *Stack) Peak() any {
	return stack.Top.Val
}

 7.Show()

func (stack *Stack) Show() []any {
	var res []any
	currrntnode := stack.Top
	for currrntnode != nil {
		res = append(res, currrntnode.Val)
		currrntnode = currrntnode.Next
	}
	return res
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值