数据结构:数组队列
来源:互联网 发布:面向对象编程的优势 编辑:程序博客网 时间:2024/06/13 06:20
头文件
#ifndef __SQQUENUE_H__#define __SQQUENUE_H__#define FALSE 0#define TRUE 1#define SIZE 10typedef int Queue_data ;typedef struct _queue{Queue_data data[SIZE];int front; //定义头int rear; //定义尾}QUEUE;//清空队列(初始化)int Initqueue(QUEUE * q);//判断队列空否int QueueEmpty(QUEUE * q);//进队int PushQueue(QUEUE *q,Queue_data x);//出队int PopQueue(QUEUE *q,Queue_data *x);//取队头int GetQueue(QUEUE *q,Queue_data *x);#endif
实现函数
#include<stdio.h>#include<stdlib.h>#include"SqQuenue.h"#include"error.h"//清空队列int Initqueue(QUEUE* q){if (q == NULL){errno = ERROR;return FALSE;}q->front = 0;q->rear = 0;}//判断队列空否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;}//进队(从rear进队列)int PushQueue(QUEUE *q,Queue_data x){if (q == NULL){errno = ERROR;return FALSE;}if(QueueFull(q)){errno = QUEUE_FULL;return FALSE;}q->rear = (q->rear+1) % SIZE;q->data[q->rear] = x;return TRUE;}//出队(从front出队列)int PopQueue(QUEUE *q,Queue_data *x){if (q == NULL){errno = ERROR;return FALSE;}if(QueueEmpty(q)){errno = QUEUE_EMPTY;return FALSE;}q->front = (q->front +1) %SIZE;*x = q->data[q->front];return TRUE;}//取队头int GetQueue(QUEUE *q,Queue_data *x){if (q == NULL){errno = ERROR;return FALSE;}if(QueueEmpty(q) != TRUE){errno = QUEUE_EMPTY;return FALSE;}int index = (q->front + 1) % SIZE;*x = q->data[index];return TRUE;}
阅读全文
1 0
- 数据结构之队列(数组队列)
- 数据结构 队列 (数组)
- 数据结构---队列(数组实现)
- 数据结构:数组队列
- 数据结构03.1 队列模拟(数组)
- 数据结构-用数组实现队列
- 数据结构之数组实现队列
- 【数据结构】队列-数组的实现
- 第七周--数据结构--队列数组
- 数据结构:数组、链表、堆栈、队列
- 数据结构-循环数组实现队列
- 数据结构 -- 队列 & 循环队列 -- 数组实现
- 数据结构之数组实现基础队列结构
- 数据结构:队列(循环数组实现)
- 数据结构— 数组循环队列C++
- 经典数据结构之数组实现的队列
- 数据结构学习之队列的数组实现
- 数据结构--队列之C数组实现
- Python-17 lambda表达式
- 【LeetCode系列】动态规划算法
- 【C语言】动态内存分配
- web开发常见安全问题(SQL注入、XSS攻击、CSRF攻击)
- Priject Euler problem 1:multiples of 3 or 5
- 数据结构:数组队列
- 程序猿必须知道的一些有用的(外国)网站
- Codeforces758D---Ability To Convert
- 深度学习(一)深度学习学习资料
- 简洁Java之道
- Linux 学习-" "(双引号)与 ' '(单引号)的区别
- Sorting Information with Comparable -Swift中实例的排序问题
- Docker源码分析(四)之Docker Server
- Log4cpp 库安装及使用