队列的基础操作
来源:互联网 发布:spss数据输入 编辑:程序博客网 时间:2024/06/03 20:15
队列是一种特殊的线性表,只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
#define SIZE 5typedef struct queue{ int inner;}Queue;Queue a[SIZE];Queue *head = NULL;Queue *tail = NULL;/*(1)初始化队列:Init_Queue(Queue *q) ,初始条件:队q 不存在。操作结果:构造了一个空队;(2)入队操作: In_Queue(Queue *q, int x),初始条件: 队q 存在。操作结果: 对已存在的队列q,插入一个元素x 到队尾,队发生变化;(3)出队操作: Out_Queue(Queue *q),初始条件: 队q 存在且非空,操作结果: 删除队首元素,并返回其值,队发生变化;(4)读队头元素:Pop_Queue(Queue *q),初始条件: 队q 存在且非空,操作结果: 读队头元素,并返回其值,队不变;(5)判队空操作:Empty_Queue(q),初始条件: 队q 存在,操作结果: 若q 为空队则返回为1,否则返回为0。*/void Init_Queue(Queue *q){ head = q; tail = q;}void In_Queue(Queue *q, int x){ if (q != NULL) { if (tail == &a[SIZE]) { printf("The Queue is full filled."); } else { tail->inner = x; tail++; } }}int Out_Queue(Queue *q){ int temp = 0; if (head!=tail&&q!=NULL) { temp = head->inner; head++; } else { printf("NULL"); } return temp;}int Pop_Queue(Queue *q){ if (head != tail&&q != NULL) { return head->inner; } else printf("NULL");}int Empty_Queue(Queue *q){ if (head == tail) return 1; else return 0;}
阅读全文
0 0
- 队列的基础操作
- 循环队列的基础操作(C++)
- ACboy(队列和栈的基础操作)
- (10.19)C++实现链队列的基础操作
- 链式队列的基础操作实现(C语言)
- 循环队列的操作
- 队列的操作
- 链队列的操作
- 队列的简单操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的相关操作
- 链队列的操作
- 队列的简单操作
- 队列的基本操作!
- E - 队列的操作
- 队列的基本操作
- matlab read excel出错
- 在分布式数据库中CAP原理CAP+BASE以及分布式和集群的区别
- mysql slave创建:mysqldump参数--master-data
- python科学计算库numpy的使用
- 关于C语言宏定义define的用法探究
- 队列的基础操作
- 初创的云平台公司是否需要设立运维岗
- String中substring方法内存泄漏问题
- Java JUC之Atomic系列12大类实例讲解和原理分解
- 树形数据结构小结
- 微信公众平台网页开发实战--2.从手机相册中选照片然后分享
- 移动web端页面如何调用手机QQ?
- 方法(其他语言中称函数)
- java原子更新器AtomicReferenceFieldUpdater的使用