顺序队列C/C++实现
来源:互联网 发布:python .dot 编辑:程序博客网 时间:2024/04/20 18:36
#include <iostream>using namespace std;const int MAXSIZE = 1000;typedef int ELEMTYPE;const int N = 10;typedef struct { ELEMTYPE data[MAXSIZE]; int head; int tail;}Queue;Queue Q;void initQueue(Queue &Q);void printQueue(Queue &Q);int isQueueEmpty(Queue &Q);int isQueueFull(Queue &Q);int EnQueue(Queue &Q,ELEMTYPE e);int DeQueue(Queue &Q,ELEMTYPE &e);int main(){ for(int i=0;i<N;i++) { EnQueue(Q,i); } printQueue(Q); return 0;}void initQueue(Queue &Q){ Q.head = 0; Q.tail = 0;}void printQueue(Queue &Q){ ELEMTYPE e; while(!isQueueEmpty(Q)) { DeQueue(Q,e); cout<<e<<"\t"; }}int isQueueEmpty(Queue &Q){ return Q.head==Q.tail;}int isQueueFull(Queue &Q){ return (Q.tail+1)%MAXSIZE == Q.head;}int EnQueue(Queue &Q,ELEMTYPE e){ if(isQueueFull(Q)) return 0; Q.tail = (Q.tail+1)%MAXSIZE; Q.data[Q.tail] = e; return 1;}int DeQueue(Queue &Q,ELEMTYPE &e){ if(isQueueEmpty(Q)) return 0; Q.head = (Q.head+1)%MAXSIZE; e = Q.data[Q.head]; return 1;}
**注意顺序队列的初始化可以让Q.head=Q.tail=0,也可以Q.head=Q.tail=1;
前者相当于带头结点的链队列;后者相当于不带头结点的链队列**
0 0
- 顺序队列类实现(C++)
- 顺序队列C/C++实现
- 数据结构---队列顺序表c实现
- 循环队列 顺序存储 C实现
- 队列的顺序存储C实现
- 顺序循环队列的c语言实现
- 【数据结构】顺序队列的实现(c++)
- 循环队列-顺序存储-c语言实现
- 顺序队列的C语言实现
- 【c++】模拟实现顺序队列方法一
- 【c++】模拟实现顺序队列方法二
- C语言数据结构-顺序队列-数组实现
- 数据结构-队列-顺序表实现-C语言
- C语言 顺序队列
- 顺序队列.c
- 顺序队列(循环队列)基本操作实现 C语言
- 数据结构(C实现)------- 顺序队列(非循环队列)
- C语言实现链式队列和顺序队列
- my information
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第三版)
- 高级排序
- spring boot 下 500 404 错误页面处理
- 完整详解GCD系列(四)dispatch_semaphore(信号量)
- 顺序队列C/C++实现
- android.support.v4.view.NestedScrollingChild cannot be resolved
- android点滴之HandlerThread的用法
- 选择排序法
- Spring依赖注入:注解注入总结
- declare-styleable:自定义控件的属性
- Linux下后台挂起和杀死进程
- 完整详解GCD系列(三)dispatch_group
- caffe+Ubuntu14.04+cuda+cudnn+opencv配置