队列链表c语言实现

#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
typedef int ElemType;
typedef struct  QNode{
    ElemType data;
    struct QNode* next;
}QNode,* QuenePtr;
typedef struct {
    QuenePtr front;
    QuenePtr rear;
}LinkQueue;
void InitQueue(LinkQueue& S) {
    S.front = S.rear = (QuenePtr)malloc(sizeof(struct QNode));
}
void Destroy(LinkQueue& s) {
    QuenePtr p = s.front;
    while (s.front) {
        p = s.front->next;
        free(s.front);
        s.front = p;
        //s.rear = s.front->next;
        //free(s.front);
        //s.front = s.rear
    }
}
int QueueLength(LinkQueue Q) {
    
}
int EnQueue(LinkQueue& s, ElemType x) {
    QuenePtr p = (QuenePtr)malloc(sizeof(struct QNode));
    p->data = x;
    p->next = NULL;
    s.rear->next = p;
    s.rear = p;
    return 1;
}
int DeQueue(LinkQueue& s, ElemType& x) {
    if (s.front == s.rear)return 0;
    QuenePtr p = (QuenePtr)malloc(sizeof(QNode));
    p = s.front->next;
    x = s.front->data;
    if (p == s.rear)s.rear = s.front;
    free(p);
    return 1;
}
int SqQueneEmpty(LinkQueue& s) {
    if (s.front == s.rear)return 1;
    return 0;
}
ElemType GetHead(LinkQueue Q) {
    if (Q.front == Q.rear)return 0;
    return Q.front->next->data;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值