小工具知识网

当前位置: 首页 > 行业知识 > 特殊线性表——队列(链表形式)(C语言)

行业知识

特殊线性表——队列(链表形式)(C语言)

2026-11-14 23:29:43 来源:互联网转载
#include#includetypedef int E;struct ListNode{    E e;    struct ListNode * next;};typedef struct ListNode * Node;struct LinkQueue{    Node front,rear;};typedef struct LinkQueue * Queue;//初始化_Bool initQueue(Queue queue){    Node head = malloc(sizeof(struct ListNode));    if(head == NULL) return 0;    head -> next = NULL;    queue -> front = queue -> rear = head;  //一开始两个指针都是指向头节点,表示队列为空    return 1;}//入队_Bool offerQueue(Queue queue,E e){    Node node = malloc(sizeof(struct ListNode));    if(node == NULL) return 0;    node -> e = e;    queue -> rear -> next = node;    queue -> rear = queue -> rear -> next;    queue -> rear -> next = NULL;  //这个用来终结尾结点    return 1;}//出队E pollQueue(Queue queue){    Node node = queue->front->next;    E e = node -> e;    queue->front->next = queue->front->next->next;  //直接让首结点指向下下个结点    if(queue->rear == node) queue->rear = queue->front;   //如果队尾就是待出队的结点,那么队尾回到队首位置上    free(node);   //释放内存    return e;}//获取队列中元素个数int TotalQueue(Queue queue){    int count = 0;    Node node = queue -> front;    node = node -> next;    while(node != NULL){        node = node -> next;        count++;    }    free(node);    return count;}//打印队列void printQueue(Queue queue){    printf("

上一篇:缓存下载秘籍大解析,轻松掌握高效下载技巧!

下一篇:神秘符号探秘,揭开未知世界的秘密之门