美文网首页
C语言结构体实现链式栈

C语言结构体实现链式栈

作者: 炭墩儿 | 来源:发表于2017-10-22 22:25 被阅读0次

        stack(栈)是一中运算受限的线性表,它是先进后出,包含栈顶和栈底,并且只允许在栈顶进行插入删除等操作,会包含俩种,静态栈和动态栈,其实就是数组实现的栈和链表实现的栈,这边实现的是用链表实现的栈。

主要是实现这些栈常用的方法。

数据结构

定义栈的数据结构,包含一个栈顶一个栈底。初始值栈顶和栈底都同时指向同一个节点。节点包含一个pnext 和一个value。

初始化init方法

前面能看到栈的数据结构,所以能联想到初始化方法其实就是创建一个节点,并且把栈的栈顶和栈底指针都指向这个节点。

Push&Pop方法

既然是栈,肯定设计到push和pop操作。push操作会添加一个新节点指向栈顶节点,并且把栈顶的指针移动到新节点,pop是把栈顶指针移动到栈顶指针指向节点的下一个节点,并且释放栈顶节点。

会用到判断栈是否为空的方法,其实原理就是判断栈顶指针和栈底指针是否相等。

清空栈和遍历输出

清空栈是从栈顶开始,逐个的删除所有的节点,这边需要注意的是不能直接删除并且移动栈顶指针,这样就找不到被删除的节点了,而是要在删除的同时要释放。遍历输出和清空的思想差不多,从栈顶开始,逐个打印节点的value值。

相关文章

  • C语言结构体实现链式栈

    stack(栈)是一中运算受限的线性表,它是先进后出,包含栈顶和栈底,并且只允许在栈顶进行插入删除等操作,...

  • 数据结构之 栈

    栈结构 链式栈 一.栈结构体 1构建空栈 2栈置空 3判断栈空 4获取栈顶 5入栈 6出栈 7便利栈 二.链式栈 ...

  • 动态栈的存储结构及算法C语言实现

    动态栈的存储结构及算法C语言实现

  • 栈与队列(一)

    在这篇文章里,我们来实现自定义的链式栈。首先我们来看看链式栈的结构及操作定义。 链式栈结构定义 首先,新建两个文件...

  • 顺序存储/链式存储设计栈结构

    一、顺序存储1.1 定义常量及结构 1.2 栈方法实现 二、链式存储2.1 定义常量及结构 2.2 栈方法实现

  • 顺序存储结构栈 共享栈 链式存储结构栈

  • C++实现链式栈

    在之前写的C语言实现链式栈篇博文中,我已经给大家大概介绍了关于链式栈的意义以及相关操作,我会在下面给大家分享百度百...

  • 栈 递归 算法应用实现

    文章的算法实例阅读需要一定的c基础,在涉及算法之前会先实现栈的顺序结构与链式结构,希望能帮到你复习栈的知识 文中几...

  • 链式栈(js)

    栈 特点:先进后出 链式存储结构 类似于 c 的结构体,在线性存储空间进行随机的空间分配,并且通过指针按顺序将随机...

  • 数据结构基础--链式栈

    链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不...

网友评论

      本文标题:C语言结构体实现链式栈

      本文链接:https://www.haomeiwen.com/subject/ddwnuxtx.html