数据结构-->队列的链式实现 ADT

来源:互联网 发布:java 接口变量 编辑:程序博客网 时间:2024/04/30 08:34
typedef int QElemType;typedef struct QNode{    QElemType data;    QNode *next;}QNode,*QueuePtr;typedef struct{    QueuePtr Front;//队首指针    QueuePtr Rear;//队尾指针}LinkQueue;//是一个指针表
bool InitQueue(LinkQueue &Q){//队列的初始化    Q.Front = Q.Rear = new QNode;    Q.Front->next = NULL;    return OK;}
bool EnQueue(LinkQueue &Q,QElemType e){//e入队,注意是队尾加入元素    QNode *p = new QNode;    p->data = e;    p->next = NULL;    Q.Rear->next = p;//与当前队尾连接    Q.Rear  = p;    return OK;}
bool DeQueue(LinkQueue &Q,QElemType &e){    if(Q.Front == Q.Rear) return ERROR;//空队列    QNode p = Q.Front->next;    e = p->data;    Q.Front ->next = p->next;    if(Q.Rear == p) Q.Rear = Q.Front;//最后一个元素被删则队尾指针指向头结点    delete p;    return OK;}
QElemType GetHead(LinkQueue Q){    if(Q.Front != Q.Rear)         return Q.Front->next->data;}
0 0
原创粉丝点击