栈是一种基本的数据结构,广泛应用于计算机科学和编程中,用于管理数据的存储和访问。栈遵循后进先出(Last In, First Out,LIFO)原则,即最后放入栈的元素首先被取出。这种数据结构模拟了物理世界中的栈,如一堆书或一摞盘子。
栈是一个线性数据结构,具有以下关键特点:
栈在计算机科学中有广泛的应用,包括但不限于以下用途:
栈可以通过数组或链表实现。每种实现方式都有其优点和缺点。
以下是用Go语言实现的简单栈的示例,使用切片实现:
package main
import (
"fmt"
)
type Stack struct {
items []int
}
func (s *Stack) Push(item int) {
s.items = append(s.items, item)
}
func (s *Stack) Pop() int {
if len(s.items) == 0 {
panic("Stack is empty")
}
lastIndex := len(s.items) - 1
item := s.items[lastIndex]
s.items = s.items[:lastIndex]
return item
}
func main() {
stack := Stack{}
stack.Push(1)
stack.Push(2)
stack.Push(3)
fmt.Println(stack.Pop()) // 输出 3
fmt.Println(stack.Pop()) // 输出 2
}
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。