数据结构栈C++简单实现
来源:互联网 发布:网络教育哪家好考 编辑:程序博客网 时间:2024/06/06 00:45
#include<iostream>using namespace std;const int MAXSIZE = 100;const int ADD = 10;struct stack{int * base;int * top;int size;int ability;};void IntStack(stack & sta)//初始化{sta.base = (int *)malloc(MAXSIZE*sizeof(int));sta.top = sta.base;sta.ability = MAXSIZE;sta.size = 0;};void push(stack & sta,int a)//出栈{if(sta.size >= sta.ability ){sta.base = (int*)realloc(sta.base,(sta.ability+ADD)*sizeof(int));if(!sta.base) exit(0);sta.top = sta.base + sta.size;}(*sta.top) = a;sta.top++;sta.size++;}int Pop(stack & sta)//入栈{if(sta.size>0){sta.size--;return *(--sta.top);}elsethrow exception();}int GetSize(stack & sta)//返回栈长{return sta.size;}int GetTop(stack & sta)//返回栈顶元素{if(sta.size!=0){return (*sta.base);}return -1;}void DestoryStack(stack & sta)//销毁{free(sta.base); sta.base = sta.top;}void clear(stack & sta)//清空{//压缩存储空间if(sta.ability>MAXSIZE){free(sta.base);sta.base = (int *)malloc(MAXSIZE*sizeof(int));sta.ability = MAXSIZE;}sta.base = sta.top;sta.size = 0;}bool StackTraverse(stack & sta,bool(* visit)(int &))//遍历调用{int * p = sta.base;for(;p!=sta.top;p++){if(!(visit(*p))){ return false;}}return true;}bool fun(int & a){ a++; return true;}int main(){ stack myStack;//创建 IntStack(myStack);//初始化 cout<<"大小:"<<GetSize(myStack)<<endl; push(myStack,1);//元素入栈 push(myStack,2); push(myStack,3); for(int *p = myStack.base;p!=myStack.top;p++)//遍历栈中的元素 cout<<(*p)<<" "; cout<<endl; cout<<"大小:"<<GetSize(myStack)<<endl; //所有元素出栈 for(;0!=myStack.size;) { cout<<Pop(myStack)<<" "; } cout<<endl; push(myStack,4);//元素入栈 push(myStack,5); push(myStack,6); cout<<GetTop(myStack)<<endl; StackTraverse(myStack,&fun);//处理栈中所有元素 for(int *p = myStack.base;p!=myStack.top;p++)//遍历栈中的元素 cout<<(*p)<<" "; cout<<endl; cout<<"大小:"<<GetSize(myStack)<<endl;//栈中元素的个数 }
1 0
- [数据结构]栈的C语言简单实现
- 数据结构C语言之栈的简单实现
- 【数据结构与算法】(三) c 语言栈的简单实现
- 数据结构C语言之单链表简单实现
- 简单数据结构之顺序表(C实现)
- 简单数据结构之链式表(C实现)
- 【C语言 数据结构】 简单线性表实现
- [数据结构]图邻接矩阵C语言简单实现
- [数据结构]队列的C语言简单实现
- [数据结构]单链表C语言的简单实现
- 【数据结构】数据结构C语言的实现(简单二叉树)
- 数据结构栈C++简单实现
- 简单数据结构---数组实现栈
- 数据结构-简单栈的实现
- 大学常见数据结构简单实现(c&c++)
- 数据结构C语言实现栈
- 数据结构 链式 栈 c实现
- 数据结构.栈(C语言实现)
- 无法引入import com.sun.management.OperatingSystemMXBean
- hiberante学习笔记7 配置文件常用属性
- 黑马程序员_java高新(四)_类加载器、动态代理
- Hibernate 二级缓存
- php常量及变量定义方法
- 数据结构栈C++简单实现
- 失败了一天啊!
- POJ1328 Radar Installation 贪心
- lua 解析 xml 文件,含内嵌
- CentOS安装SNMP
- Eclipse Kepler SR2 设置 每次打开选择工作区
- 黑马程序员_String类
- 静态成员变量和静态成员函数的定义
- 值初始化