首页 > 代码库 > 简单的顺序队列

简单的顺序队列

#include<stdio.h>
#include<malloc.h>
#define max 100
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==max)
{
printf("队列已满\n");
}
else
{
p->queue[p->rear++]=x;
}
return 1;
}


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

void tra(queue p)
{
for(int i=p->front;i<p->rear;i++)
{
printf("%d ",p->queue[i]);
}
}

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);


}

简单的顺序队列