common.h
#ifndef __COMMON_H__
#define __COMMON_H__
#define QUEUE_SIZE_MAX 5
typedef int QElemType;
typedef struct queue_s
{
QElemType *base; // queue base
int front; // head
int rear; // tail
}QUEUE_S, *PQUEUE_S;
int queue_init(QUEUE_S *q);
void queue_deinit(QUEUE_S *q);
int queue_en(QUEUE_S *q, QElemType e);
int queue_de(QUEUE_S *q, QElemType *e);
void queue_dump(QUEUE_S *q);
typedef struct qnode_s
{
QElemType data;
struct qnode_s *next;
}QNODE_S, *PQNODE_S;
typedef struct linkqueue_s
{
PQNODE_S front;
PQNODE_S rear;
}LINKQUEUE_S, *PLINKQUEUE_S;
int linkqueue_init(LINKQUEUE_S *q);
void linkqueue_deinit(LINKQUEUE_S *q);
int linkqueue_en(LINKQUEUE_S *q, QElemType e);
int linkqueue_de(LINKQUEUE_S *q, QElemType *e);
void linkqueue_dump(LINKQUEUE_S *q);
#endif
顺序队列queue.c
//顺序队列
#include <stdio.h>
#include <stdlib.h>
#include "common.h"
int queue_init(QUEUE_S *q)
{
if(!q)
{
printf("ERR: NULL pointer.\n");
return -1;
}
q->base = malloc(QUEUE_SIZE_MAX * sizeof(QElemType));
if(!(q->base))