博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构 链栈
阅读量:7090 次
发布时间:2019-06-28

本文共 2025 字,大约阅读时间需要 6 分钟。

做一个豁达而努力的自己。

链栈的存储结构:

typedef struct StackNode{    SElemType data;    StackNode *next;}StackNode, *SLinkStack;

链栈的初始化:

void InitStack(SLinkList &S){    S = NULL;}

判断是否为空:

Status StackEmpty(SLinkList S){    if(S == NULL)        return true;    return false;}

压栈:

Status Push(SLinkList &S, SElemType e){    SLinkList p;    p = new StackNode;    if(!p)        return OVERFLOW;    cin >> p->data;    p->next = S;    S = p;    return OK;}

弹栈:

Status Pop(SLinkList &S, SElemType &e){    if(S == NULL)        return ERROR;    e = S->data;    SLinkList p;    p = S;    S = S->next;    delete p;    return OK;}

取栈顶元素:

Status GetTop(SLinkList S, SElemType &e){    if(S == NULL)        return ERROR;    e = S->data;    return OK;}

代码:

#include 
using namespace std;//链栈的存储结构typedef struct StackNode{ int data; StackNode *next;}StackNode, *SLinkList;//链栈的初始化void InitStack(SLinkList &S){ S = NULL;}//判断链表是否为空bool StackEmpty(SLinkList S){ if(S == NULL) return true; return false;}//压栈bool Push(SLinkList &S, int e){ SLinkList p; p = new StackNode; if(!p) return false; p->data = e; p->next = S; S = p; return true;}//弹栈bool Pop(SLinkList &S, int &e){ SLinkList p; if(S == NULL) return false; e = S->data; p = S; S = S->next; delete p; return true;}//取栈顶元素bool GetTop(SLinkList S, int &e){ if(S == NULL) return false; e = S->data; return true;}//链栈的销毁void DestroyStack(SLinkList &S){ SLinkList p, q; p = S; while(p) { q = p; delete q; p = p->next; } S = NULL;}int main(){ SLinkList S; InitStack(S); int n; int e; cout << "输入元素个数:"; cin >> n; while(n--) { cin >> e; if(Push(S, e)) ; else cout << "弹栈失败" << endl; } if(GetTop(S, e)) cout << "栈顶元素是:" << e << endl; else cout << "查找栈顶元素失败" << endl; if(Pop(S, e)) cout << "弹栈成功,弹出的元素是:" << e <

转载于:https://www.cnblogs.com/KogetsuChida/p/10410004.html

你可能感兴趣的文章
Hybrid小技巧:通过js调用原生对话框(Android)
查看>>
日志服务Python消费组实战(二):实时分发数据
查看>>
从几道面试题看对象的初始化
查看>>
盛极而衰,互联网体育是伪风口还是真趋势?
查看>>
14-《ARKit by Tutorials》读书笔记1:开始入门
查看>>
[MetalKit]33-Ambient-Occlusion-in-Metal环境光遮蔽
查看>>
图解JavaScript算法排序
查看>>
Flask环境搭建(自己学习用)
查看>>
iOS逆向之旅(进阶篇) — HOOK(Method Swizzling)
查看>>
Javascript之正则表达式的学习笔记
查看>>
Hadoop 学习系列(三)之 YARN 详细解析
查看>>
QPM 之悬浮窗助力性能优化
查看>>
YYCache 源码学习(一):YYMemoryCache
查看>>
ios 原生骨架动画库
查看>>
前端性能优化常用总结
查看>>
flutter安装开发环境-问题记录
查看>>
第十四课时: 登录/登出以及JWT认证
查看>>
渲染机制/页面性能/错误监控
查看>>
Dom中高big 事件总结(持续更新中)
查看>>
Immutable.js 源码解析 --List 类型
查看>>