链式存储队列 基本操作

Run Settings
LanguageC++
Language Version
Run Command
#include <stdio.h> #include <stdlib.h> #define ElemType int typedef struct LinkNode // 链式队列结点 { ElemType data; struct LinkNode *next; } LinkNode; typedef struct // 链式队列 { LinkNode *front, *rear; // 队列的队头和队列指针 } LinkQueue; // 初始化 void InitQueue(LinkQueue &Q) // 初始化带头结点的链队列 { Q.front = Q.rear = (LinkNode *)malloc(sizeof(LinkNode)); // 建立头结点 Q.front->next = NULL; // 初始为空 } // 判断队空 bool IsEmpty(LinkQueue Q) { if (Q.front == Q.rear) return true; else return false; } // 入队 void EnQueue(LinkQueue &Q, ElemType x) { LinkNode *s = (LinkNode *)malloc(sizeof(LinkNode)); // 创建新结点 s->data = x; s->next = NULL; Q.rear->next = s; // 插入链尾 Q.rear = s; // 修改尾指针 } // 出队 bool DeQueue(LinkQueue &Q, ElemType &x) { if (Q.front == Q.rear) return false; // 空队 LinkNode *p = Q.front->next; x = p->data; Q.front->next = p->next; if (Q.rear == p) Q.rear = Q.front; // 若原队列中只有一个结点,删除后变空 free(p); return true; } int main() { return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines