顺序队列学习

来源:互联网 发布:港股交易规则 知乎 编辑:程序博客网 时间:2024/05/16 07:13
#include<stdio.h>#include<stdlib.h>#define QUEUE_SIZE 100typedef int ElemType;typedef struct {  ElemType *base;  ElemType rear;  int queuesize;}SqQueue;//初始化顺序队列int InitSqQueue(SqQueue &Q){  Q.base=(ElemType *)malloc(QUEUE_SIZE*sizeof(ElemType));  Q.rear=0;  Q.queuesize=QUEUE_SIZE;  return 0;}//插入元素int EnSqQueue(SqQueue &Q,ElemType e){   if(Q.rear==Q.queuesize)    return -1;   Q.base[Q.rear++]=e;   return 0;}//删除元素int DeSqQueue(SqQueue &Q,ElemType e){    int i;    if(Q.rear){        e=*Q.base;        for(i=1;i<Q.rear;i++)         Q.base[i-1]=Q.base[i];         Q.rear--;         return e;    }    else        return -1;}//得到元素int GetSqQueue(SqQueue Q,ElemType &e){    if(Q.rear){     e=*Q.base;     return e;    }    else        return -1;}//判空int EmptySqQueue(SqQueue Q){  if(Q.rear==0)    return 1;  else  return 0;}//清空顺序队列int ClearSqQueue(SqQueue &Q){    Q.rear=0;    return 0;}int main(){    SqQueue Q;int e,i;InitSqQueue(Q);printf("%d",EmptySqQueue(Q));printf("\n");EnSqQueue(Q,2);EnSqQueue(Q,1);EnSqQueue(Q,3);printf("%d",EmptySqQueue(Q));printf("\n");GetSqQueue(Q,e);printf("%d ", e);printf("\n");DeSqQueue(Q,e);printf("%d ",e);printf("\n");ClearSqQueue(Q);printf("%d ",EmptySqQueue(Q));EnSqQueue(Q,1);EnSqQueue(Q,2);EnSqQueue(Q,3);printf("\n");for(i=0;i<Q.rear;i++){printf("%d ",Q.base[i]);}    return 0;}

0 0