数据结构:堆栈
1.简介
堆栈(Stack)常用数据结构的一种。分为栈底和栈顶,只允许栈顶压入或弹出,后入先出。
与队列相似,区别是只能在一头执行,压入或弹出操作。
分类
- 静态栈:栈长度固定不可扩容。
- 动态栈:栈长度可以动态增加。
2.图示

3.演示
package stack
type Stack struct {
arr []interface{}
}
func (s *Stack) Push(obj interface{}) {
s.arr = append(s.arr, obj)
}
func (s *Stack) Pop() interface{} {
length := s.Len()
if length == 0 {
panic("Stack is empty")
}
obj := s.arr[length-1]
s.arr = s.arr[:length-1]
return obj
}
func (s *Stack) Len() int {
return len(s.arr)
}
堆栈是一种基本的数据结构,遵循后进先出(LIFO)原则。本文介绍了堆栈的定义、分类(静态栈与动态栈)以及其实现,通过Go语言展示了堆栈的基本操作如压入、弹出和获取长度。同时,提供了堆栈的图示帮助理解其工作原理。
996

被折叠的 条评论
为什么被折叠?



