当前位置: 首页 > news >正文

顺序栈练习

顺序栈练习

相关内容:
1.判断顺序栈栈满的两种方式
2.一张图理解栈顶指针加加减减的问题
3.栈的顺序存储结构(顺序栈)

//顺序栈的初始化、判空、入栈、出栈、读取栈顶元素
//顺序栈的结构:数组、栈顶指针(本质是下标)
#include<stdio.h>
#define MAXSIZE 10
typedef int Status;
#define TRUE 1
#define FALSE 0
typedef struct
{int data[MAXSIZE];int top;//栈顶指针指向栈顶元素是上一个位置
}SqStack;
//顺序栈的初始化:初始化栈顶指针
Status InitSqStack(SqStack *S){S->top=-1;return TRUE;
}
//顺序栈的判空(使用前,不是使用时):栈顶指针为-1
Status isEmpty(SqStack *S){if (S->top==-1)return TRUE;elsereturn FALSE;
}
//顺序栈的入栈:判满,栈顶指针+1,添加元素
Status Push(SqStack *S,int e){if (S->top==MAXSIZE-1)//判满return FALSE;S->data[++S->top]=e;//先使用top后++return TRUE;
}
//顺序栈的出栈:判空,栈顶元素出栈,栈顶指针-1
Status Pop(SqStack *S,int *e){if (S->top==-1)//判空return FALSE;   else{*e=S->data[S->top--];return TRUE;}
}
//顺序栈的读取栈顶元素:判空,返回元素
Status GetElem(SqStack *S,int *e){if (S->top==-1)//判空return FALSE;   else{*e=S->data[S->top];return TRUE;}
}
int main(){int n,e;SqStack S;InitSqStack(&S);printf("初始化完成!\n");if (!isEmpty(&S))//使用前判空printf("栈空!\n");printf("输入需要进栈的元素个数:");scanf("%d",&n);for (size_t i = 0; i < n; i++){printf("输入第%d个进栈元素:",i+1);scanf("%d",&e);Push(&S,e);}GetElem(&S,&e);printf("栈顶元素为:%d\n",e);printf("所有元素出栈\n");for (size_t i = 0; i < n; i++){printf("输出第%d个出栈元素:",i+1);Pop(&S,&e);printf("%d\n",e);}return 0;
}

http://www.lryc.cn/news/217815.html

相关文章:

  • 安全与HTTP协议:为何明文传输数据成为争议焦点?
  • 【笔记】excel怎么把汉字转换成拼音
  • opencv官网文档学习
  • Android性能优化--Perfetto用SQL性能分析
  • NLP之Bert实现文本分类
  • Pytorch从零开始实战08
  • docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)
  • mapbox使用marker创建html点位信息
  • 项目构建工具maven的基本配置
  • 超详细docker学习笔记
  • Adobe acrobat 11.0版本 pdf阅读器修改背景颜色方法
  • HCIA数据通信——路由协议
  • 十种常见典型算法
  • python-列表推导式、生成器表达式
  • NLP 模型中的偏差和公平性检测
  • YUV图像格式详解
  • 软考高项-质量管理措施
  • Redis那些事儿(一)
  • 【多媒体文件格式】M3U8
  • linux中xargs的实用技巧
  • 【Jmeter】生成html格式接口自动化测试报告
  • 如何将极狐GitLab 漏洞报告导出为 HTML 或 PDF 格式或导出到 Jira
  • uniapp原生插件之安卓文字转拼音原生插件
  • [架构之路-254/创业之路-85]:目标系统 - 横向管理 - 源头:信息系统战略规划的常用方法论,为软件工程的实施指明方向!!!
  • CSP-J 2023真题解析
  • 【Proteus仿真】【51单片机】贪吃蛇游戏
  • Android 原生定位开发(解决个别手机定位失败问题)
  • uni-app 中如何实现数据组件间传递?
  • SpringBoot整合自签名SSL证书,转变HTTPS安全访问(单向认证服务端)
  • k8s:endpoint