循环队列的初始化,入队,出队,队长(C语言)

#define _CRT_SECURE_NO_WARINING
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 6

typedef struct {
	int* base;//初始化动态分配储存空间
	int front;//头指针
	int rear;//尾指针
}SqQueue;

int InitQueue(SqQueue* S)//创建队列
{
	S->base = (int*)malloc(MAXSIZE * sizeof(int));//初始化空间
	S->front = S->rear = 0; //头尾指针
	return 1;
}

int QueueLength(SqQueue S)//队列长度
{
	return (S.rear -S.front + MAXSIZE) % MAXSIZE;
}

int Full(SqQueue *S)//判断队满
{
	return (S->rear + 1) % MAXSIZE == S->front;
}

int Empty(SqQueue* S)//判断对空
{
	return S->rear == S->front;
}

int EnQueue(SqQueue* S, int e)//入队
{

	if (Full(S)) return -2;
	S->base[S->rear] = e;//使元素加入队尾
	S->rear = (S->rear + 1) % MAXSIZE;//队尾指针+1
	return 1;
}

int DeQueue(SqQueue* S, int e)//出队
{
	if (Empty(S)) return -2;
	e = S->base[S->front];//把队头的元素存入e
	S->front = (S->front + 1) % MAXSIZE;//使队头指针+1

	return e;
}


int main()
{
	SqQueue Q;
	int e;
	int a=0;
	InitQueue(&Q);
	scanf_s("%d", &e);
	EnQueue(&Q, e);
	a = DeQueue(&Q, a);
	printf("出列:%d", a);
	return 0;
}

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值