顺序栈学习
来源:互联网 发布:idea新建普通java项目 编辑:程序博客网 时间:2024/06/06 18:01
#include<stdio.h>#include<stdlib.h>#define STACK_SIZE 10typedef int ElemType;typedef struct { ElemType *top;ElemType *base; int stacksize;}SqStack;//初始化顺序栈int InitStack(SqStack &S){ S.base=(ElemType *)malloc(STACK_SIZE*sizeof(ElemType)); S.top=S.base; S.stacksize=STACK_SIZE; return 0;}//压入元素int PushStack(SqStack &S,ElemType e){ if(S.top-S.base>=S.stacksize) return -1; *(S.top)++=e; return 0;}//得到栈顶元素并删除栈顶元素int PopStack(SqStack &S,ElemType &e){ if(S.top==S.base) return -1; e=*--(S.top); return 0;}//得到栈顶元素int GetStack(SqStack S,ElemType &e){ if(S.top>S.base){ e=*(S.top-1); return e; } else return 0;}//清空顺序栈int ClearStack(SqStack &S){ S.top=S.base; return 0;}//判空int EmptyStack(SqStack S){ if(S.top==S.base) return 1; else return 0;}//栈的长度int LengthStack(SqStack S){return S.top-S.base;}int main(){ SqStack S; int i,e; InitStack(S); printf("%d",LengthStack(S)); printf("\n"); for(i=1;i<=5;i++){ PushStack(S,i); } for(i=1;i<=LengthStack(S);i++){printf("%d ",*(S.top-i)); }printf("\n");PopStack(S,e);printf("%d ",e);printf("\n"); for(i=1;i<=LengthStack(S);i++){printf("%d ",*(S.top-i)); }printf("\n");GetStack(S,e);printf("%d",e);printf("\n");ClearStack(S);printf("%d",EmptyStack(S)); return 0;}
0 0
- 顺序栈学习
- 数据结构学习记录-顺序栈
- 算法学习----给定入栈的顺序,判断另一个顺序是否为该入栈顺序的一个弹出顺序
- 【数据结构】顺序栈、链栈学习笔记
- 数据结构学习----顺序栈(Java实现)
- 数据结构——顺序栈的学习
- 第三天学习数据结构,顺序栈
- 。NET学习的顺序
- NET学习的顺序
- NET学习的顺序
- 学习java的顺序?
- java学习顺序
- net学习顺序
- [转]c++学习顺序
- j2ee的学习顺序
- java的学习顺序
- C++学习顺序
- 浪曦学习顺序
- 电脑族应该怎么保护眼睛
- 单摄像头+激光测距
- DecimalFormat
- 函数类型和函数指针类型
- 重载operator操作符
- 顺序栈学习
- [C/C++]_[初级]_[原子操作]
- Spring框架-->面试问答
- 27. Remove Element
- Too many alarms (500) registered
- CSS表显示值
- JQuery 获取验证上传文件大小代码
- 与AQS有关的并发类
- Web 通信 之 长连接、长轮询(long polling)