Stack(堆叠)是一种後进先出(LIFO)的资料结构
看一下图
注:图源
你可以想像一下在厨房洗碗,盘子在洗手台堆起来,你一定是从最上面开始开,不会从最底。
或者是浏览器回到上一页的功能,愈近的记录会愈早读到,生活中还有满多stack的应用~
Stack观念跟程序都不难,以下来实作一下
这边会用slice来做,push资料的时候append到slice里面,pop的时候取slice最後的值就可以了。
程序:
type Stack struct {
nodes []int
}
func (s *Stack) Push(val int) {
s.nodes = append(s.nodes, val)
}
func (s *Stack) Pop() int {
if len(s.nodes) == 0 {
return 0
}
res := s.nodes[len(s.nodes)-1]
s.nodes = s.nodes[0 : len(s.nodes)-1]
return res
}
学完了,明天就来写leetcode XD~
<<: 从零开始学游戏设计:建立分数条 Part2.图片与文字
>>: Day3. 从Example Code瞧瞧Matter.js的盘古开天
缘起 不知道大家是否有这样的经验,买了一本标榜手把手教学的书,随书附赠的 GitHub 页面上有与每...
讲到云端相关的议题,一定会看到的就是 IaaS 、 PaaS 与 SaaS。这几个名词可以算是云端的...
何谓渗透测试 以骇客的角度,针对企业的网路、系统、网站进行检测弱点与漏洞,并撰写一份渗透测试报告提...
刚好有一道面试题目,不能使用 input type=date 或任何现有套件,要做出类似Datepi...
昨天利用了 window.open 可以开启新分页或视窗,今天则是来关闭多个视窗。 Nightwat...