博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈和队列的操作
阅读量:4639 次
发布时间:2019-06-09

本文共 1833 字,大约阅读时间需要 6 分钟。

#include 
#define Status int#define STACK_INIT_SIZE 100#define STACKINCREMENT 10using namespace std;typedef struct{ int *base; int *top; int stacksize;}SqStack;Status InitStack(SqStack &S){ S.base=(int*)malloc(STACK_INIT_SIZE*sizeof (int)); if(!S.base) exit(-2); S.top=S.base; S.stacksize=STACK_INIT_SIZE; return 1;}Status GetTop(SqStack S,int &e){ if(S.top==S.base) return 0; e=*(S.top-1); return 1;}Status Push(SqStack &S,int e){ if(S.top-S.base>=S.stacksize) { S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int)); if(!S.base)exit(-2); S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; } *S.top++=e; return 1;}Status Pop(SqStack &S,int &e){ if(S.top==S.base) return 0; e=*--S.top; return 1;}typedef struct QNode{ int data; struct QNode *next;}QNode,*QueuePtr;typedef struct{ QueuePtr front; QueuePtr rear;}LinkQueue;Status InitQueue(LinkQueue &Q){ Q.front=Q.rear=(QueuePtr)malloc(sizeof (QNode)); if(!Q.front) exit(-2); Q.front->next=NULL; return 1;}Status DestroyQueue(LinkQueue &Q){ while(Q.front) { Q.rear=Q.front->next; free(Q.front); Q.front=Q.rear; } return 1;}Status EnQueue(LinkQueue &Q,int e){ QueuePtr p=(QueuePtr)malloc(sizeof (QNode)); if(!p) exit(-2); p->data=e;p->next=NULL; Q.rear->next=p; Q.rear=p; return 1;}Status DeQueue(LinkQueue &Q,int &e){ QueuePtr p; if(Q.front==Q.rear) return 0; p=Q.front->next; e=p->data; Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; free(p); return 1;}int main(){ SqStack S; LinkQueue Q; InitStack(S); int e1=100,e2=101,d,e3; Push(S,e1); Push(S,e2); GetTop(S,d); cout<
<

转载于:https://www.cnblogs.com/ffgcc/p/10546442.html

你可能感兴趣的文章
BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
查看>>
ubuntu 重启命令,ubuntu 重启网卡方法
查看>>
Linux的学习:
查看>>
JavaScript中的原型继承原理
查看>>
Python logger模块
查看>>
jquery控制css的display(控制元素的显示与隐藏)
查看>>
关于python做人工智能的一个网页(很牛逼)
查看>>
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>
POJ-1128 Frame Stacking
查看>>
异常体系
查看>>
String.format(转)
查看>>
解决 CS0006 未能找到元数据文件
查看>>
HDU 5131.Song Jiang's rank list (2014ACM/ICPC亚洲区广州站-重现赛)
查看>>
mysql搭建主从数据库
查看>>
新的一年,新的开始
查看>>
python模块struct
查看>>
图像的灰度级和动态范围(转)
查看>>
C# MODBUS协议 上位机(转)
查看>>
CSS box-shadow 属性
查看>>
vue:图片切换动态显示
查看>>