顺序队列学习

#include<stdio.h>
#include<stdlib.h>
#define QUEUE_SIZE 100
typedef 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值