数据结构 (一)栈

本文介绍了栈这一数据结构,强调了其先进后出的特性,并详细阐述了顺序栈和链栈的存储结构。顺序栈的初始化、判断空栈、进栈、出栈、读栈顶元素的操作被详细说明。此外,还讨论了共享栈的概念,以及栈的链式存储结构的优势。
摘要由CSDN通过智能技术生成

概念

栈是只允许在一端插入或删除操作的线性表。(有且仅有一端进行插入或者删除操作)

栈的示意图 只允许在栈顶操作,由上方栈的示意图可得出a1为栈底元素,是因为只允许在栈顶操作,所以a1应该是最先进入栈中的,a4为栈顶元素,同理可知a4是最后进入栈.由此可得出栈的一个重要的操作特性是先进后出。
栈的基本操作
itStack(S)∶初始化一个空栈S。
StackEmpty(S)∶判断一-个栈是否为空,若栈 s为空则返回true,否则返回 false。
Push (sS,x)∶进栈,若栈S未满,则将x加入使之成为新栈顶。
Pop(&S,&x)∶ 出栈,若栈s 非空,则弹出栈顶元素,并用x 返回。
GetTop (S,sx)∶读栈顶元素,若栈 s 非空,则用x返回栈顶元素。
DestroyStack(&S)∶销毁栈,并释放栈s占用的存储空间("&"表示引用调用)
栈是一种操作受限的线性表,有两种存储结构
顺序存储结构
链式存储结构
顺序栈的实现

#define Maxsize 50   //定义栈中元素的最大个数
typeef struct{
   
Elemtype data[MaxSize];//存放栈中元素
int top;              //栈顶指针
} SqStack;

栈顶指针 初始 设置为S.top==-1;
栈顶元素 S.data[S.top]
进栈操作:栈顶指

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值