循环队列演示
来源:互联网 发布:lte无线网络优化 编辑:程序博客网 时间:2024/05/01 09:30
#include<stdio.h>#include<malloc.h>typedef struct Queue{ int * pBase; int front; int rear;}QUEUE;void init(QUEUE *);bool en_queue(QUEUE *, int val);void traverse_queue(QUEUE *);bool full_queue(QUEUE *);bool out_queue(QUEUE *, int *pVal);bool emput_queue(QUEUE *);int main(){ QUEUE Q; int val; init(&Q); en_queue(&Q, 1); en_queue(&Q, 2); en_queue(&Q, 3); en_queue(&Q, 4); en_queue(&Q, 5); en_queue(&Q, 6); en_queue(&Q, 7); en_queue(&Q, 8); traverse_queue(&Q); if( out_queue(&Q, &val) ) printf("出队%d成功\n",val); else printf("出队失败\n"); traverse_queue(&Q); return 0;}void init(QUEUE *pQ){ pQ->pBase = (int *)malloc(sizeof(int) * 6); pQ->front = 0; pQ->rear = 0;}bool full_queue(QUEUE * pQ){ if( (pQ->rear + 1) % 6 == pQ->front ) return true; else return false;}bool en_queue(QUEUE * pQ, int val){ if( full_queue(pQ) ) return false; else { pQ->pBase[pQ->rear] = val; pQ->rear = (pQ->rear+1) % 6; return true; }}void traverse_queue(QUEUE * pQ){ int i = pQ->front; while(i != pQ->rear) { printf("%d ",pQ->pBase[i]); //输出的是以i为下标的元素 i = (i + 1) % 6; }}bool emput_queue(QUEUE * pQ){ if( pQ->front == pQ->rear) return true; return false;}bool out_queue(QUEUE * pQ, int * pVal){ if( emput_queue(pQ) ) return false; else{ *pVal = pQ->pBase[pQ->front]; pQ->front = (pQ->front+1) % 6; return true; }}
0 0
- 循环队列演示
- 郝斌数据结构 47 循环队列程序演示
- 【郝斌数据结构自学笔记】47-49_循环队列程序演示 _ 队列的具体应用
- 队列演示1.
- 演示Queue,队列-01
- 演示Queue,队列-02
- MSSQL简单循环演示
- while循环演示+教程
- php 循环多线程演示
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 在sqlserver2005/2008中备份数据库,收缩日志文件
- Linux下nginx相关配置
- ios-day03-03(xib和自定义View的结合使用,MVC模式)
- 物理CPU与逻辑CPU
- 批量导出informatica object 的shell script
- 循环队列演示
- 一个调整应用图标大小的小工具
- Cocos2d-x 3.0坐标系详解
- 力所能及之struts2拦截器
- Assertions
- LDM522-MINI射频读卡模块 迷你款 手持平板门禁首选
- QT串口编程的相关类(QSerialPortInfo)
- C编译器剖析_3.3 语法分析_C语言的外部声明(1)
- s:iterator遍历