数据结构与算法之堆栈

本文介绍了堆栈这一数据结构,包括其作为线性表存储结构的特点,后进后出(LIFO)原则,以及堆栈的常用操作:创建、判断满、压栈、判断空和出栈。通过实例说明了堆栈的操作过程,并提供了相关代码实现。
摘要由CSDN通过智能技术生成

数据结构与算法之堆栈


目前正自学数据结构,于此记录学习历程,方便复习。同时为后来者提供帮助。


一、堆栈是什么

堆栈是线性表存储结构的一种,是人们自主的在链表或数组的基础上增加一些限制而形成的。我们可以将它类比为盘子,盘子在堆叠时是一个一个往上面摞。堆栈亦是如此,当你想要在堆栈中存储元素(俗称“入栈”),你只能将其放在前一个元素的后面。 而取盘子也只能从最上面一个一个向下取。同理,在堆栈中如果你想删除一个元素(俗称“出栈”),只能从最后面的元素一个一个向前取。 如下图所示:
入栈:B后入,必须在A之后
入栈:B比A后入,则必须插在A之后
在这里插入图片描述
出栈,B在A之后,B先出。
因此,堆栈的出入栈操作也叫做后进后出

二、堆栈的操作

1、Stack CreateStack( int MaxSize ): 生成空堆栈,其最大长度为MaxSize;

代码如下:

struct SNode {
   
    ElementType Data;
    PtrToSNode Next;
};
typedef PtrToSNode Stack;
 
Stack CreateStack( ) 
{
    /* 构建一个堆栈的头结点,返回该结点指针 */
    Stack S;
 
    S = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值