第七周项目一—建立顺序环形队列算法库
来源:互联网 发布:fifaol3 超玩数据库 编辑:程序博客网 时间:2024/06/07 19:28
/* * Copyright (c) 2017,烟台大学计算机学院 * All right reserved. * 文件名称:main.cpp * 作者: 王华慧 * 完成日期:2017年10月24日 * 版本号:v1.0 * * 问题描述:建立顺序环形队列算法库 * 输入描述:标准函数输入 * 程序输出:标准函数输出 */
sqqueue.h 存放函数头文件
#pragma once#ifndef SQQUEUE_H_INCLUDED #define SQQUEUE_H_INCLUDED #define MaxSize 5 typedef char ElemType;typedef struct{ElemType data[MaxSize];int front, rear; /*队首和队尾指针*/} SqQueue;void InitQueue(SqQueue *&q); //初始化顺序环形队列 void DestroyQueue(SqQueue *&q); //销毁顺序环形队列 bool QueueEmpty(SqQueue *q); //判断顺序环形队列是否为空 int QueueLength(SqQueue *q); //返回队列中元素个数,也称队列长度 bool enQueue(SqQueue *&q, ElemType e); //进队 bool deQueue(SqQueue *&q, ElemType &e); //出队 #endif // SQQUEUE_H_INCLUDED
sqqueue.cpp 定义函数存放
#include <stdio.h> #include <malloc.h> #include "sqqueue.h" void InitQueue(SqQueue *&q) //初始化顺序环形队列 {q = (SqQueue *)malloc(sizeof(SqQueue));q->front = q->rear = 0;}void DestroyQueue(SqQueue *&q) //销毁顺序环形队列 {free(q);}bool QueueEmpty(SqQueue *q) //判断顺序环形队列是否为空 {return(q->front == q->rear);}int QueueLength(SqQueue *q) //返回队列中元素个数,也称队列长度 {return (q->rear - q->front + MaxSize) % MaxSize;}bool enQueue(SqQueue *&q, ElemType e) //进队 {if ((q->rear + 1) % MaxSize == q->front) //队满上溢出 return false;q->rear = (q->rear + 1) % MaxSize;q->data[q->rear] = e;return true;}bool deQueue(SqQueue *&q, ElemType &e) //出队 {if (q->front == q->rear) //队空下溢出 return false;q->front = (q->front + 1) % MaxSize;e = q->data[q->front];return true;主函数main.cpp
#include <stdio.h> #include "sqqueue.h" #include <iostream>int main(){ElemType e;SqQueue *q;printf("(1)初始化队列q\n");InitQueue(q);printf("(2)依次进队列元素a,b,c\n");if (enQueue(q, 'a') == 0) printf("队满,不能进队\n");if (enQueue(q, 'b') == 0) printf("队满,不能进队\n");if (enQueue(q, 'c') == 0) printf("队满,不能进队\n");printf("(3)队列为%s\n", (QueueEmpty(q) ? "空" : "非空"));if (deQueue(q, e) == 0)printf("队空,不能出队\n");elseprintf("(4)出队一个元素%c\n", e);printf("(5)队列q的元素个数:%d\n", QueueLength(q));printf("(6)依次进队列元素d,e,f\n");if (enQueue(q, 'd') == 0) printf("队满,不能进队\n");if (enQueue(q, 'e') == 0) printf("队满,不能进队\n");if (enQueue(q, 'f') == 0) printf("队满,不能进队\n");printf("(7)队列q的元素个数:%d\n", QueueLength(q));printf("(8)出队列序列:");while (!QueueEmpty(q)){deQueue(q, e);printf("%c ", e);}printf("\n");printf("(9)释放队列\n");DestroyQueue(q); system("pause");return 0;}运行结果
区分和栈和队列顺序表的建立,有相同之处也有不同的地方,还是需要好好学习,个人思路上还是有点跟不上
阅读全文
0 0
- 第七周项目一 建立顺序环形队列算法库
- 第七周 项目一 建立顺序环形队列算法库
- 第七周-项目一 建立顺序环形队列算法库
- 第七周项目一--建立顺序环形队列算法库
- 第七周 项目一 建立顺序环形队列算法库
- 第七周项目一建立顺序环形队列算法库
- 第七周 项目一建立顺序环形队列算法库
- 第七周 项目一 建立顺序环形队列算法库
- 第七周项目一 建立顺序环形队列算法库
- 第七周项目一 建立顺序环形队列算法库
- 第七周 项目一 建立顺序环形队列算法库
- 第七周 项目一 建立顺序环形队列算法库
- 第七周——项目一—建立顺序环形队列算法库
- 第七周 项目一——建立顺序环形队列算法库
- 第七周 项目一——建立顺序环形队列算法库
- 数据结构第七周项目(一)——建立顺序环形队列算法库
- 第七周项目一—建立顺序环形队列算法库
- 第七周项目一—建立顺序环形队列算法库
- 欢迎使用CSDN-markdown编辑器
- osmdroid API解读(七)
- 第八周【项目3-顺序串算法】
- Java代码实现两台电脑之间传文件(2)
- Combinatorics——HDUOJ 1100
- 第七周项目一—建立顺序环形队列算法库
- NOIP 2017.10.24 总结+心得
- Android使用无线连接手机调试
- Go实现图的宽度搜索
- Spring-IOC
- 对KMP算法的理解
- EXT.NET
- 病毒式营销
- spring框架访问properties配置文件的设置方法