直接看代码吧。嘿嘿~
/*
** File name: LinkPriorityQueue.h
** Author: ZhouFeng
** Date: 2012/03/30
** LPQ -- LinkPriorityQueue
*/
#ifndef LINK_PRIORITY_QUEUE_H
#define LINK_PRIORITY_QUEUE_H
#define ERROR 0
#define SUCCESS 1
#define BOOL int
#define TRUE 1
#define FALSE 0
typedef int EleDataType;
typedef struct EleType
{
EleDataType data;
int nPriority;
}EleType;
typedef struct LPQNode
{
EleType eleData;
struct LPQNode *pNext;
}LPQNode;
typedef struct LinkPriorityQueue
{
int nCount;
struct LPQNode *pRear;
struct LPQNode *pFront;
}LinkPriorityQueue, *PLPQ;
void InitLPQ(PLPQ *pLPQAddr);
BOOL IsLPQEmpty(PLPQ pLPQ);
/* et -- EleType varible. */
int LPQAppend(PLPQ pLPQ, EleType et);
int LPQDelete(PLPQ pLPQ, EleType *et);
int GetLPQ(PLPQ pLPQ, EleType *et);
void FreeLPQ(PLPQ *pLPQ);
#endif
/*
** File name: LinkPriorityQueue.c
** Author: