用结构实现栈,函数压栈,弹栈,初始化,释放
来源:互联网 发布:上海餐饮软件 编辑:程序博客网 时间:2024/06/06 05:12
用结构实现栈,函数压栈,弹栈,初始化,释放
#include <iostream>using namespace std;struct stack{ int *data; //栈数据存储,后面 把一维数组的地址给了data int memnum; //栈元素个数 int size; //栈大小};//其实不用声明的,我按书上傻X的抄下来的int initstack(stack &s,int size);void delstack(stack &s);int popstack(stack &s,int &num);int pushstack(stack &s,int mem);//初始化栈 int initstack(stack &s,int size) { s.data=new int [size]; //将一维数组的地址给了data if(s.data==NULL) return 0; s.memnum=0; s.size=size; return 1; } //释放栈 void delstack(stack &s) { delete[]s.data; //就是释放指针 } //弹栈,无数据时返回0,否则返回1 int popstack(stack &s,int &num) { if(s.memnum==0) return 0; num=s.data[--s.memnum]; return 1; } //压栈,成功返1,否则返0 int pushstack(stack &s,int mem) { if(s.memnum==s.size) return 0; s.data[s.memnum++]=mem; return 1; }int main(){ int i,num; stack newstack; initstack(newstack,10); //压栈 cout<<"通过压栈函数将整数压入栈中"<<endl; for(i=0;i<10;i++) { cout<<i<<" "; pushstack(newstack,i); } cout<<endl; //弹栈 for(i=0;i<10;i++) { if(popstack(newstack,num)) cout<<num<<" "; } cout<<endl<<endl; //直接操作栈的内部数据,破坏性地使用栈 //直接将数据存入data for(i=10;i<20;i++) { cout<<i<<" "; newstack.data[newstack.memnum++]=i; } cout<<endl; //直接从data中读取数据 cout<<"直接从data中读取数据:"<<endl; for(i=0;i<10;i++) { cout<<newstack.data[i]<<" "; } cout<<endl; //非法读取data ,造成越界 for(i=10;i<20;i++) cout<<newstack.data[i]<<" "; cout<<endl; //释放栈 delstack(newstack); return 0;}
- 用结构实现栈,函数压栈,弹栈,初始化,释放
- 结构体数组的指针初始化与内存释放
- 怎样用函数初始化结构体
- 底层理解函数调用实现过程 栈结构 栈过程
- 理解函数调用实现过程 栈结构 栈过程
- 结构体函数指针的初始化
- 结构体中使用构造函数初始化
- 初始化和释放模块
- 顺序栈的C语言实现——初始化函数、入栈函数和出栈函数
- C++ 初始化函数的实现
- 函数调用栈空间的分配和释放
- 函数调用过程(栈桢的形成与释放)
- 用宏初始化结构体
- java实现栈结构
- 栈结构实现
- JAVA实现栈结构
- js实现栈结构
- Java实现栈结构
- iOS开发笔记--如何自定义启动画面Default.png加载时间
- TC1.0使用方法
- [设计模式整理笔记 六] 工厂模式与创建者模式总结
- c# string两个函数的用法
- Java注释规范
- 用结构实现栈,函数压栈,弹栈,初始化,释放
- [设计模式整理笔记 七] 原型模式(ProtoType)
- HTTP消息头中的“Cache-control”
- 彩色材料或成手机行业新一轮爆发点
- “第一次亲密接触”——数据库的设计
- [设计模式整理笔记 八] 单例模式(Singleton)
- RMAN输出到log文件中
- 有时一个眼神就知道对方是不是喜欢你
- wakelock 详解