#include <iostream>
using namespace std;
#define MaxSize 100 typedef int ElementType;
typedef struct { ElementType data[MaxSize]; int front, rear; } SqQueue;
void InitQueue(SqQueue &Q) { Q.rear = Q.front; }
bool isEmpty(SqQueue Q) { if (Q.front == Q.rear) return true; else return false; }
bool EnQueue(SqQueue &Q, ElementType x) { if ((Q.rear + 1) % MaxSize == Q.front) return false; Q.data[Q.rear] = x; Q.rear = (Q.rear + 1) % MaxSize; return true; }
bool DeQueue(SqQueue &Q, ElementType &x) { if (Q.rear == Q.front) return false; x = Q.data[Q.front]; Q.front = (Q.front + 1) % MaxSize; return true; }
typedef struct LinkNode { ElementType data; struct LinkNode *next; } LinkNode;
typedef struct { LinkNode *rear, *front; } LinkQueue;
void InitLinkQueue(LinkQueue &Q) { Q.front = Q.rear = (LinkNode *) malloc(sizeof(LinkNode)); Q.front->next = nullptr; }
bool IsLinkEmpty(LinkQueue Q) { if (Q.front == Q.rear) return true; else return false; }
void EnLinkQueue(LinkQueue &Q, ElementType x) { LinkNode *s = (LinkNode *) malloc(sizeof(LinkNode)); s->data = x; s->next = nullptr; Q.rear->next = s; Q.rear = s; }
bool DeLinkQueue(LinkQueue &Q, ElementType &x) { if (Q.rear == Q.front) 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; }
|