博客
关于我
循环队列的初始化、进队、出队、以及遍历打印
阅读量:798 次
发布时间:2019-03-21

本文共 1205 字,大约阅读时间需要 4 分钟。

/*顺序循环队列*/typedef int Status;typedef int ElemType;#define MAX 1024#define ERROR -1#define OK 0#include
#include
using namespace std;//设计节点结构体typedef struct SqNode{ ElemType elem[MAX]; int front; int rear;}SqNode;//初始化SqNode* InitSqCriQueue(){ SqNode* q = (SqNode*)malloc(sizeof(SqNode)); q->front = q->rear = 0; return q;} //判断队满bool IsFull(SqNode* q){ return((q->rear+1)%MAX==q->front);}//判断队空bool IsEmpty(SqNode* q){ return(q->front == q->rear);}//进队Status EnQueue(SqNode* q, ElemType e){ if (IsFull(q)) return ERROR; else { q->elem[q->rear] = e; q->rear=(q->rear+1)%MAX; return OK; }}//出队Status OutQueue(SqNode* q, ElemType* e){ if (IsEmpty(q)) return ERROR; else { *e = q->elem[q->front]; q->front=(q->front+1)%MAX; }}//打印Status Show(SqNode* q){ if (IsEmpty(q)) return ERROR; else { int p = q->front; while (q->rear != p) { cout << q->elem[p] << endl; //printf("行号----%d----\n",__LINE__); p = (p + 1) % MAX; } return OK; }}int main(){ SqNode* q = InitSqCriQueue(); EnQueue(q, 0); EnQueue(q, 1); EnQueue(q, 2); EnQueue(q, 3); EnQueue(q, 4); EnQueue(q, 5); Show(q); cout << "----------" << endl; int e; OutQueue(q, &e); Show(q);}

转载地址:http://ytogz.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(35)——Mysql两千万数据优化及迁移
查看>>
Mysql学习总结(36)——Mysql查询优化
查看>>
Mysql学习总结(37)——Mysql Limit 分页查询优化
查看>>
Mysql学习总结(38)——21条MySql性能优化经验
查看>>
Mysql学习总结(39)——49条MySql语句优化技巧
查看>>
Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
查看>>
Mysql学习总结(40)——MySql之Select用法汇总
查看>>
Mysql学习总结(41)——MySql数据库基本语句再体会
查看>>
Mysql学习总结(42)——MySql常用脚本大全
查看>>
Mysql学习总结(43)——MySQL主从复制详细配置
查看>>
Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
查看>>
Mysql学习总结(45)——Mysql视图和事务
查看>>
Mysql学习总结(46)——8种常被忽视的SQL错误用法
查看>>
Mysql学习总结(48)——MySql的日志与备份还原
查看>>
Mysql学习总结(49)——从开发规范、选型、拆分到减压
查看>>
Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
查看>>
Mysql学习总结(50)——Oracle,mysql和SQL Server的区别
查看>>
Mysql学习总结(51)——Linux主机Mysql数据库自动备份
查看>>
Mysql学习总结(52)——最全面的MySQL 索引详解
查看>>
Mysql学习总结(53)——使用MySql开发的Java开发者规范
查看>>