2.3.2队列的链表存储实现

来源:互联网 发布:海上钢琴师知乎 编辑:程序博客网 时间:2024/06/08 13:46

这里写图片描述

#include<stdio.h>#include<stdlib.h>#define ERROR 1e8struct Node {//链表的节点结构    ElementType Data;    struct Node *Next;};typedef int ElementType;struct QNode {//链队列结构    struct Node *rear;//指向队尾节点    struct Node *front;};typedef struct QNode *Queue;Queue PtrQ;//**入栈操作    我不会写QAQ**//不带头结点的链式队列出队操作ElementType DeleteQ(Queue PtrQ) {    struct Node *FrontCell;    ElementType FrontElem;    if (PtrQ->front == NULL) {        printf("队列空!\n");        return ERROR;    }    FrontCell = PtrQ->front;    if (PtrQ->front == PtrQ->rear)//队列只有一个元素        PtrQ->front = PtrQ->rear = NULL;//删除后队列置空    else        PtrQ->front = PtrQ->front->Next;    FrontElem = FrontCell->Data;    free(FrontCell);    return FrontElem;}
原创粉丝点击