栈的实现--(C++)
来源:互联网 发布:mysql nullif 编辑:程序博客网 时间:2024/05/29 12:45
代码如下
#include<iostream>#include<stdlib.h>#include<string.h>using namespace std;#define MAXLEN 50struct Data{ string name; int age;};struct stack{ Data data[MAXLEN+1]; int top;};//函数声明stack* stack_init();int stack_isEmpty(stack *s);Data* peekStack(stack *s);Data* popStack(stack *s);int pushStack(stack *s,Data data);int stack_isFull(stack *s);void stack_clear(stack *s);void stack_free(stack *s);int main(){ stack *stack; Data data,*p_data; stack=stack_init(); cout<<"--入栈--"<<endl; while(1){ cout<<"请输入姓名:"; cin>>data.name; cout<<"请输入年龄:"; cin>>data.age; if(data.age == 0) break; else pushStack(stack,data); } cout<<"输出栈顶元素:"; p_data = peekStack(stack); cout<<"name:"<<p_data->name<<" age:"<<p_data->age<<endl; cout<<"所有元素出栈!!!!"<<endl; while(1){ if(stack->top == 0) break; p_data=popStack(stack); cout<<"name:"<<p_data->name<<" age:"<<p_data->age<<endl; } if(stack_isEmpty){ cout<<"栈已空!"<<endl; }}//初始化栈stack* stack_init(){ stack *p; if(p = new stack){ p->top = 0; return p; } return NULL;}//判断栈是否为空int stack_isEmpty(stack *s){ return int(s->top == 0);}//判断是否满栈int stack_isFull(stack *s){ return int(s->top == MAXLEN);}//清空栈void stack_clear(stack *s){ s->top = 0;}//释放空间void stack_free(stack *s){ delete s;}//入栈int pushStack(stack *s,Data data){ if((s->top+1)>MAXLEN){ cout<<"栈溢出!!"<<endl; return 0; } s->data[++s->top]=data; return 1;}//出栈Data* popStack(stack *s){ if(s->top == 0){ cout<<"亲!栈已经空了!"<<endl; exit(0); } return &(s->data[s->top--]);}//查询栈顶元素Data* peekStack(stack *s){ if(s->top == 0){ cout<<"栈空了——"<<endl; exit(0); } return &(s->data[s->top]);}
阅读全文
0 0
- 栈的实现--(C++)
- C++ 链式栈的实现
- 栈的实现(C++)
- 栈的C实现
- 【c++】栈的实现
- LCS算法的C++实现
- 单链表逆序的C++实现
- 数据结构学习系列五-顺序栈(c++实现且应用模板)
- 数据结构学习系列六-链式栈(c++实现且应用模板)
- C语言伪泛型的实现--栈
- Vector 的简单实现 C++11
- 顺序栈的实现(ANSI C)
- 链式栈的实现(ANSI C)
- 顺序栈的实现(C语言)
- 基于vector的栈实现(C++)
- 栈的实现(C语言版)
- 顺序栈的实现(C语言)
- 【数据结构】顺序栈的实现(c++)
- java使用Json
- lua的脚本式编程
- RGB颜色查询对照表
- ImageView.ScaleType属性
- 在ui设计的地理图片上实现echarts热力图
- 栈的实现--(C++)
- 2017暑假七林集训day22
- 为Java程序员编写的Scala的入门教程
- 下拉框选中事件
- 权限处理模型
- 获取CPS,CPA,CPD等非SDK联运渠道的逻辑渠道号
- ORA-00942: 表或视图不存在
- 一片短文Clob
- Java基本循环语句、嵌套循环以及九九乘法表实例