当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 0

UnbalancedCat/十进制整数复数计算器
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Queue.h 2.16 KB
一键复制 编辑 原始数据 按行查看 历史
UnbalancedCat 提交于 2021-12-21 01:00 . 新增历史记录功能
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include "Common.h"
// 队列的顺序存储结构(循环队列)
#define MAX_QSIZE 6 // 最大队列长度+1
#define MAX_STRING_SIZE 50 // 最大表达式长度
typedef char* QElemType;
typedef struct
{
QElemType* base; // 初始化的动态分配存储空间
int front; // 头指针,若队列不空,指向队列头元素
int rear; // 尾指针,若队列不空,指向队列尾元素的下一个位置
} SqQueue;
// 构造一个空队列Q
Status QInit(SqQueue& Q)
{
Q.base = (QElemType*)malloc(MAX_QSIZE * sizeof(QElemType*));
for (int i = 0; i < MAX_QSIZE; i++)
{
Q.base[i] = (QElemType)malloc(MAX_STRING_SIZE * sizeof(QElemType));
}
// 存储分配失败
if (!Q.base) {
return ERROR;
}
Q.front = Q.rear = 0;
return OK;
}
// 销毁队列Q,Q不再存在
void QDestroy(SqQueue& Q)
{
if (Q.base)
free(Q.base);
Q.base = NULL;
Q.front = Q.rear = 0;
}
// 将Q清为空队列
void QClear(SqQueue& Q)
{
Q.front = Q.rear = 0;
}
// 若队列Q为空队列,则返回1;否则返回-1
Status QEmpty(SqQueue& Q)
{
if (Q.front == Q.rear) // 队列空的标志
return OK;
else
return ERROR;
}
// 返回Q的元素个数,即队列的长度
int QLength(SqQueue& Q)
{
return (Q.rear - Q.front + MAX_QSIZE) % MAX_QSIZE;
}
// 若队列不空,则用e返回Q的队头元素,并返回OK;否则返回ERROR
int QGetHead(SqQueue Q, QElemType& e)
{
if (Q.front == Q.rear) // 队列空
return ERROR;
strcpy(e, Q.base[Q.front]);
return OK;
}
// 打印队列中的内容
void QPrint(SqQueue& Q)
{
int p = Q.front;
cout << "CALCULATOR HISTORY" << endl;
while (Q.rear != p) {
cout << Q.base[p] << endl;
p = (p + 1) % MAX_QSIZE;
}
cout << "---------------------------------------------------" << endl;
}
// 插入元素e为Q的新的队尾元素
int QPush(SqQueue& Q, QElemType e)
{
if ((Q.rear + 1) % MAX_QSIZE == Q.front) // 队列满
return ERROR;
strcpy(Q.base[Q.rear], e);
Q.rear = (Q.rear + 1) % MAX_QSIZE;
return OK;
}
// 若队列不空,则删除Q的队头元素,用e返回其值,并返回1;否则返回-1
int QPop(SqQueue& Q)
{
if (Q.front == Q.rear) // 队列空
return ERROR;
//e = Q.base[Q.front];
Q.front = (Q.front + 1) % MAX_QSIZE;
return OK;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/UnbalancedCat/data-structure-course-design.git
git@gitee.com:UnbalancedCat/data-structure-course-design.git
UnbalancedCat
data-structure-course-design
十进制整数复数计算器
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385