源文件:
#include"queue.h"
queuePtr caerte()
{
queuePtr q=(queuePtr)malloc(sizeof(queue));
if(NULL==q)
{
printf("申请失败\n");
return NULL;
}
q->front=q->tail=0;
printf("创建成功\n");
return q;
}
int empt(queuePtr q)
{
if(NULL==q)
{
printf("判空失败\n");
return -1;
}
return q->front==q->tail;
}
int full(queuePtr q)
{
if(NULL==q)
{
printf("判满失败\n");
return 0;
}
return (q->tail+1)%MAX==q->front;
}
void Add(queuePtr q,DataType a)
{
if(NULL==q||full(q))
{
printf("入队失败\n");
return ;
}
q->data[q->tail]=a;
q->tail=(q->tail+1)%MAX;
return ;
}
void show(queuePtr q)
{
if(NULL==q||empt(q))
{
printf("遍历失败\n");
return ;
}
for(int i=q->front;i%MAX!=q->tail;i=(i+1)%MAX)
{
printf("%d->",q->data[i]);
}
putchar(10);
return ;
}
void push(queuePtr q)
{
if(NULL==q||empt(q))
{
printf("出队失败\n");
return ;
}
printf("出队数据:%d\n",q->data[q->front]);
q->front=(q->front+1)%MAX;
return ;
}
void size(queuePtr q)
{
if(NULL==q)
{
printf("失败\n");
return ;
}
int a=0;
for(int i=q->front;i%MAX!=q->tail;i++)
{
a++;
}
printf("size= %d\n",a);
return ;
}
void My_free(queuePtr q)
{
if(NULL==q)
{
printf("销毁失败\n");
return ;
}
free(q);
printf("销毁成功\n");
q=NULL;
return;
}
头文件:
#ifndef __QUEUE__
#define __QUEUE__
#include<stdio.h>
#include<stdlib.h>
#define MAX 8
#endif
typedef int DataType;
typedef struct sequence
{
DataType data[MAX];
int front;
int tail;
}queue,*queuePtr;
queuePtr caerte();
int empt(queuePtr q);
int full(queuePtr q);
void Add(queuePtr q,DataType a);
void show(queuePtr q);
void push(queuePtr q);
void size(queuePtr q);
void My_free(queuePtr q);
测试文件:main文件
#include"queue.h"
int main()
{
queuePtr q=caerte();
Add(q,1);
Add(q,2);
Add(q,3);
Add(q,4);
Add(q,5);
Add(q,6);
Add(q,7);
show(q);
push(q);
push(q);
push(q);
show(q);
Add(q,77);
show(q);
Add(q,88);
show(q);
Add(q,99);
show(q);
size(q);
My_free(q);
q=NULL;
return 0;
}
运行截图:
标签:int,return,队列,queuePtr,Add,printf,运用,NULL,day From: https://blog.csdn.net/qq_64881918/article/details/144569499