#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;
}
循环队列的初始化,入队,出队,队长(C语言)
于 2024-06-17 10:59:58 首次发布