C语言 简单的栈
2016-02-29 15:53
393 查看
//简单的栈 #include<stdio.h> #include<stdlib.h> //栈的介绍:栈先进后出,一般用于将数据逆序输出 //栈一般只有四种方法--进栈,出栈,清空,判断栈是否为空 //定义栈的结构 #define datatype int//定义栈内数据类型 #define N 10//定义数组的大小 struct easystacknode{ int top;//栈顶位置 datatype data ; }; typedef struct easystacknode EStack; //初始化栈 EStack selfstack = { -1, { 0 } }; //判断栈是否为空 int isempty(); //进栈 int push(datatype num); //出栈 int pop(); //清空 void setempty(); void main(){ //练习:十进制转换成二进制 int m = 100; while (m!=0){ //进栈 push(m % 2); m = m / 2; } //打印出对应的二进制数据 while (!isempty()){//直到栈为空时跳出循环 printf("%d", pop()); } printf("\n"); system("pause"); } //判断栈是否为空1,1为空,0为非空 int isempty(){ if (selfstack.top==-1)//表示栈里一个元素也没有 { return 1; } else{ return 0; } } //进栈 int push(datatype num){ //先判断栈是否溢出 if (selfstack.top==N-1) { //栈已满 return 1; } else{ selfstack.top += 1;//栈顶坐标+1 selfstack.data[selfstack.top] = num; return 0; } } //出栈 int pop(){ //判断栈是否为空 if (isempty()) { return -1; } else{ selfstack.top -= 1;//栈顶坐标-1 return selfstack.data[selfstack.top + 1]; } } //清空 void setempty(){ selfstack.top=-1;//栈顶坐标置为-1 }
总结:数组栈容量有限制,不可以无限大
相关文章推荐
- 九度-题目1070:今年的第几天?
- C语言——关键字
- C语言中enum的用法
- 【POJ2406】Power Strings 中文题意&题解&代码(C++)
- 3、资源管理
- C++的黑科技(深入探索C++对象模型)
- c++中memcpy和memcpy的用法
- C++笔记:3
- C++ Primer 学习笔记——关联容器的操作
- C++开发人脸性别识别教程(17)——辅助功能之人脸批量分割
- Python重写C语言程序100例--Part9
- VC++修改电脑系统时间
- 十六进制与ASCII码的互转(C语言)
- C/C++中产生随机数(rand,srand用法)
- C++ DirectX 游戏开发初级视频教程 21 资源下载链接
- 冒泡、选择和快速排序算法的C++实现
- C++常用的智能指针
- C++的CRC32校验代码
- 没事写点啥(一)——C++扫雷
- C语言循环队列的表示与实现实例详解