干货5:顺序队列
来源:互联网 发布:emui8.0 知乎 编辑:程序博客网 时间:2024/05/22 01:44
#define TRUE 1#define FALSE 0#define SIZE 10typedef int QueueData;typedef struct _queue{QueueData data[SIZE];int front; // 指向队头的下标int rear; // 指向队尾的下标}Queue; // 置空队int InitQueue (Queue *q){if (q == NULL){errno = ERROR;return FALSE;}q->front = 0;q->rear = 0;return TRUE;}
// 判队空否
int QueueEmpty (Queue *q)
{if (q == NULL){errno = ERROR;return FALSE;}return q->front == q->rear;}// 判队满否int QueueFull (Queue *q) {if (q == NULL){errno = ERROR;return FALSE;}return q->front == (q->rear+1)%SIZE;}// 进队int EnQueue (Queue *q, QueueData x){if (q == NULL){errno = ERROR;return FALSE;}if (QueueFull(q)){errno = FULL_QUEUE;return FALSE;}q->rear = (q->rear+1) % SIZE;q->data[q->rear] = x;return TRUE;}// 出队int DeQueue (Queue *q, QueueData *x){if (q == NULL){errno = ERROR;return FALSE;}if (QueueEmpty(q)){errno = EMPTY_QUEUE;return FALSE;}q->front = (q->front + 1) % SIZE;*x = q->data[q->front];return TRUE;}// 获取队头元素int GetFront (Queue *q, QueueData *x){if (q == NULL){errno = ERROR;return FALSE;}if (QueueEmpty(q)){errno = EMPTY_QUEUE;return FALSE;}int index = (q->front + 1) % SIZE;*x = q->data[index];return TRUE;}
阅读全文
0 0
- 干货5:顺序队列
- 干货3:顺序栈
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- js字符串
- linux命令
- keepalived+nginx实现高可用(二)
- JAVA CAS原理深度分析
- 可移植的oat文件
- 干货5:顺序队列
- pyspider 控制台说明
- 网络流24题 (6/21)
- 两端都是圆角的进度条和动态进度条
- Kafka数据可靠性与一致性解析
- 浅析Android权限机制(一) —— Android的权限机制
- sat-ip from wikipedia
- 在Android项目中使用FCM(FirebaeCloudMessage)
- java 用pdfbox读取pdf