golang实现栈

一、栈的定义

栈是一种只允许在某一端插入或读取数据的线性表结构。这里包含了3个含义:

  1. 栈是线性表结构。
  2. 栈只可以在某一端插入or读取数据,这一端叫做栈顶,另一端叫做栈底。
  3. 由于只能在某一端进行插入or读取数据,所以数据是先进后出的。

二、示例代码

  1. 栈结构定义:
type stack struct {
	Top  int //栈顶元素的索引
	List []int
}
  1. 数据入栈:
func (s *stack) push(val int) {
	s.Top++
	s.List = append(s.List, val)
}
  1. 数据出栈:
//出栈,bool=false表示栈已空
func (s *stack) pop() (int, bool) {
	if s.Top == -1 {
		return 0, false
	}

	v := s.List[s.Top]
	s.Top--

	return v, true
}

三、算法题:用栈实现简易的计算器

详见:https://github.com/Eleven9527/dataStructureAndAlgorithmLearning

结语

数据结构和算法的demo及部分面试题的答案都在这里:https://github.com/Eleven9527/dataStructureAndAlgorithmLearning
专栏和项目都会陆续更新,路过的朋友帮忙star一下,不胜感激!
我是一名正在路上的程序员,希望与你一起攀登技术的高峰~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值