码迷,mamicode.com
首页 > 其他好文 > 详细

简单的循环队列

时间:2016-09-14 07:16:27      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

 

#include<stdio.h>
#include<malloc.h>
#define max 10
typedef struct node
{
int queue[max];
int front,rear;
}q,*queue;
void init(queue p)
{
p->front=-1;
p->rear=-1;
}

int empty(queue p)
{
if(p->front==p->rear)
{
printf("队列为空\n");
return 1;
}
else
{
return 0;
}
}

int insert(queue p,int x)
{
if((p->rear+1)%max==p->front)
{
printf("队列已满\n");
}
else
{
p->rear=(p->rear+1)%max;
p->queue[p->rear]=x;
}
return 1;
}


int del(queue p,int *n)
{
if(p->front==p->rear)
{
printf("队列已空\n");
}
else
{
p->front=(p->front+1)%max;
*n=p->queue[p->front];
printf("被删除元素:%d ",*n);
printf("\n");
}
return 1;
}

void tra(queue p)
{
for(int i=p->front+1;i<p->rear+1;i++)//循环队列front与rear不等于-1;(圆圈从一开始)
{
printf("%d ",p->queue[i%max]);
}
}

int main()
{//动态内存,所以指针指向数组的内存没有执行立即被分配
queue l;int n;
l=(queue)malloc(sizeof(q));
init(l);
insert(l,1);
insert(l,2);
insert(l,3);
insert(l,4);
insert(l,5);
tra(l);
printf("\n");
empty(l);
del(l,&n);
tra(l);


}

简单的循环队列

标签:

原文地址:http://www.cnblogs.com/mykonons/p/5870465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!