一个初学者对栈的理解
16340168
中山大学数据科学与计算机学院
一、什么是栈?
这篇文章所言的栈是一种数据结构,不要与栈区混淆。数据结构中的栈是一种线性表,特点是只允许在表头进行数据的插入和删除,也就是数据遵循先进后出的原则,一般把一端称为栈顶(top),另一端称为栈底(base)。
二、栈的基本操作
对栈的基本操作只有两种,一种是入栈(push),一种是出栈(pop)。
1、入栈(push)
即将数据保存在栈顶,操作前先将栈顶(top)指针移向下一个位置,从图里看就是将top箭头上移,之后将数据保存在指针所指位置。
2、出栈(pop)
即将保存在栈顶的数据输出,然后修改栈顶指针使之移向上一个位置,从图里看就是将top箭头下移。
三、两种常用的栈
1、顺序栈
使用连续的内存空间模拟栈的空间,一般使用数组来实现,数组索引为0即为栈底,其次再定义一个变量储存栈顶位置即可,这种栈实现起来比较简单容易操作,适合初学者。
2、链式栈
使用零散的内存空间模拟栈的空间,一般使用链表1来实现,链表尾部即为栈底,链表头部即为栈顶。
四、实现步骤
1、定义栈结构
定义栈这里定义一个结构体
(我左括号就是不换行你打我呀
typedef struct stack {
int *base;
int *t

本文是中山大学数据科学与计算机学院的一位初学者对栈的理解。文章介绍了栈的基本概念,包括栈的定义、基本操作如入栈和出栈,以及顺序栈和链式栈两种常用实现方式。此外,还详细讲述了栈的实现步骤,包括定义栈结构、初始化、入栈、出栈、获取栈顶元素和释放内存的操作。最后,讨论了栈在实际问题中的应用,例如括号匹配问题。
最低0.47元/天 解锁文章
1085

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



