#include#include"LQueue.h"
LQueue queue_init()
{
LQueue q;
q.front = q.rear = 0;
return q;
}
int queue_empty(LQueue q)
{
if (q.rear==q.front)
{
return true;
}
return false;
}
int queue_enter(LQueue *q, dataType e)
{
if (q->rear==MAX_OUEUE_SIZE||q->rear+1==q->front)//超出队列长度
{
return false;
}
q->LQueue_array[q->rear] = e;
printf("q.LQueue_array[%d]=%d\n", q->rear, e);
q->rear += 1;
return true;
}
int queue_delete(LQueue *q, dataType *e)
{
if (queue_empty(*q))
{
return false;
}
*e = q->LQueue_array[q->front];
//printf("q.LQueue_array[%d]=%d\n", q->front, e);
q->front += 1;
return true;
}
int get_front(LQueue q, dataType *e)
{
if (q.front==q.rear)//队空
{
return false
}
*e = q.LQueue_array[q.front];
return true;
}
void visit(LQueue q)
{
if (q.front==q.rear)
{
printf("队列为空\n");
}
int temp = q.front;
while (temp!=q.rear)
{
printf("%d ",q.LQueue_array[temp]);
temp += 1;
}
printf("\n");
}
void queue_traverse(LQueue q)
{
visit(q);
}
int get_length(LQueue q)
{
int length = q.rear - q.front;
return length;
}
void queue_clear(LQueue *q)
{
q->front = q->rear =0;
}
int main()
{
LQueue q = queue_init();
queue_enter(&q, 1);
/*queue_enter(&q, 2);
queue_enter(&q, 3);
queue_enter(&q, 4);*/
queue_traverse(q);
dataType *e = (dataType *)malloc(sizeof(*e));
queue_delete(&q, e);
printf("queue_delete(),e=%d length=%d\n", *e, get_length(q));
//queue_traverse(q, visit);
}