使用数组实现栈stack功能
2011-01-03 20:23
260 查看
《算法导论》数据结构那一章节的练习。
方法一:
使用静态数组
方法二:
通过传递数组的引用实现
方法一:
使用静态数组
#include<stdio.h> int SS[10];//定义一个数组作为stack int top=0;//定义stack的指针 bool STACK_EMPTY()//判断stack是否为空 { if(top==0) return true; else return false; } void PUSH(int *S,int x)//入栈操作 { top=top+1; S[top]=x; } int POP(int *S)//出栈操作 { if(STACK_EMPTY())//如果栈为空,则返回-1 return -1; else//如果栈不为空,则指针向前退1,返回当前指针所指向的元素 top=top-1; return S[top+1]; } void main() { //连续压栈,将1,2,3,4,5一次存入栈中。 PUSH(SS,1); PUSH(SS,2); PUSH(SS,3); PUSH(SS,4); PUSH(SS,5); while(top!=0)//如果栈不为空,则执行出栈操作,并输出出栈的元素。 { int p=POP(SS); printf("%d/n",p); } }
方法二:
通过传递数组的引用实现
#include<stdio.h> bool STACK_EMPTY(int &top) { if(top==0) return true; else return false; } void PUSH(int *S,int x,int &top) { top=top+1; S[top]=x; } int POP(int *S,int &top) { if(STACK_EMPTY(top)) return -1; else top=top-1; return S[top+1]; } void main() { int SS[10]; int top=0; PUSH(SS,1,top); PUSH(SS,2,top); PUSH(SS,3,top); PUSH(SS,4,top); PUSH(SS,5,top); while(top!=0) { int p=POP(SS,top); printf("%d/n",p); } // printf("hello world!/n"); }
相关文章推荐
- 使用数组实现栈stack功能
- ES6使用Set数据结构实现数组的交集、并集、差集功能示例
- [PHP] 原生PHP使用递归方式实现数组转换成XML的功能之思考
- 使用数组实现简单线性表功能
- 如何在不使用系统函数的情况下实现PHP中数组系统函数的功能
- assign() 功能的实现 数组分配到模板。使用 extract() 函数。 变量分配到模板。使用 compact()
- 数据结构学习笔记(3)_使用数组实现简单线性表功能
- List的All方法使用问题:我用List1的All方法来确保List1的所有每个数组元素中是否包含Arr1中的任意元素,这个部分很难实现。 因为,没有一个数组中是否包含另一个数组中的任意元素这个功能
- java使用数组实现线性表功能(增、删、查、改)
- 数据结构学习笔记(3)_使用数组实现简单线性表功能
- 数据结构学习笔记(3)_使用数组实现简单线性表功能
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 使用vue2实现购物车和地址选配功能
- UNIX/LINUX使用expect实现人机自动交互功能
- PHP中使用数组实现堆栈数据结构的代码
- IOS开发之使用Speex格式实现简单的语音聊天功能(二)
- 使用blat实现在window系统下通过BAT批处理脚本发邮件功能
- 使用IB_DESIGNABLE与IBInspectable特性实现可在视图编辑器的功能栏中设置
- 使用PagedDataSource类实现DataList和Repeater控件的分页显示功能
- 如何使用HTML5实现利用摄像头拍照上传功能