数据结构-栈的实现和应用(day7)

本文详细介绍了栈的原理,包括顺序栈和链式栈的实现。顺序栈通过数组实现,提供了创建、清空、判断空栈、进栈、出栈和取栈顶元素的函数。链式栈则利用链表实现,创建、判断空栈、入栈和释放空间的操作都在链表头部进行。同时,文章还给出了栈的作业题目,涉及栈的性质和与线性表的关系。
摘要由CSDN通过智能技术生成

一、顺序栈的原理

栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)

允许进行操作的一端称为“栈顶”

另一固定端称为“栈底”

当栈中没有元素时称为“空栈”。特点 :后进先出(LIFO)。

1.栈的应用:

如何排课:

 

 没有前驱的顶点可以通过一个栈去存储,借助于进栈出栈的操作,完成对图的特殊处理,检查它有没有回路。

先入后出

 二、顺序栈的实现

它是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作。
  
typedef  int  data_t ; /*定义栈中数据元素的数据类型*/
typedef struct 
{    
       data_t  *data ;     /*用指针指向栈的存储空间*/
       int  maxlen;    /*当前栈的最大元素个数*/
       int  top ;     /*指示栈顶位置(数组下标)的变量*/
  } sqstack;         /*顺序栈类型定义*/


1:创建栈

sqstack *stack_create (int len)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值