基本要求:
1)建立顺序循环队列类SeqQueue。
2)编写程序判断一个字符序列是否是回文。
提高要求:
1)建立链式循环队列类LinQueue。
2)编写程序判断一个字符序列是否是回文。
1.SeqQueue.h:顺序循环队列类的定义与实现
/*
* Copyright (c) 2009,FreshAir团队嵌入式软件研发组
* All rights reserved.
*
* 文件名称:SeqQueue.h
* 摘 要:顺序循环队列类的定义与实现
*
* 当前版本:1.0
* 作 者:吴友强
* 完成日期:2009年10月18日
*
* 取代版本:
* 原作者 :
* 完成日期:
*/
#include <iostream.h>
#include <stdlib.h>
const int MaxQueueSize = 100;
class SeqQueue
{
private:
DataType data[MaxQueueSize];
int front;
intrear;
intcount;
public:
SeqQueue (void)// 构造函数,空队列
{
front = rear = 0;
count = 0;
};
~SeqQueue (void)
{};//析构函数
void QueueInsert(const DataType& item);//入队列
DataType QueueDelete(void);//出队列
DataType QueueFrontData(void) const;//读队头元素值
int QueueIsEmpty(void) const//判队列是否为空
{
return front == rear ? 1 : 0;
};
void ClearSeqQueue(void)//清空队列
{
front = rear = 0;
count = 0;
};
int GetQueueSize(void) const//取队列元素个数
{
return count;
};
};
void SeqQueue::QueueInsert(const DataType& item)
{
if (front == MaxQueueSize)
{
cout << "队列已满" << endl;
exit(0);
}
data[rear] = item;
rear = (rear + 1) % MaxQueueSize;
count++;
}
DataType SeqQueue::QueueDelete(void)//出队列
{
DataType temp;
if (count == 0)
{
cout << "队列空!" << endl;
exit(0);
}
temp = data[front];
front = (front + 1)%MaxQueueSize;
count--;
return temp;
}
DataType SeqQueue::QueueFrontData(void) const//读队头元素值
{
if (count == 0)
{
cout << "队列空!" << endl;
exit(0);
}
return data[front];
}
2.SeqStackTest.cpp:测试顺序队列的功能,实现判断是否回文
/*
* Copyright (c) 2009,FreshAir团队嵌入式软件研发组
* All rights reserved.
*
* 文件名称:SeqStackTest.cpp
* 摘 要:测试顺序队列的功能,实现判断是否回文
*
* 当前版本:1.0
* 作 者:吴友强
* 完成日期:2009年10月18日
*
* 取代版本:
* 原作者 :
* 完成日期:
*/
#include <stdlib.h>
#include <iostream.h>
#include <string.h>
typedef char DataType;
#include "SeqQueue.h"
#include "SeqStack.h"
int main(void)
{
SeqStack myStack;
SeqQueue myQueue;
char str[80];
cout << "输入字符序列,回车换行符结束:" << endl;
cin.getline(str, 80);
int h = strlen(str);
for (int i=0; i<h; i++)
{
myQueue.QueueInsert(str[i]);
myStack.Push(str[i]);
}
while (!myQueue.QueueIsEmpty())
{
if (myQueue.QueueDelete() != myStack.Pop())
{
cout << "不是回文" << endl;
return 0;
}
}
cout << "是回文" << endl;
return 0;
}
说明:用到的堆栈头文件是前面实现的。
<!--EndFragment-->
分享到:
相关推荐
PPT内容是数据结构中有关栈和队列的知识,非常适合正在学习数据结构基础的同学
数据结构 严蔚敏 C语言版 循环队列 很给劲哦 绝对不会令您失望的。
数据结构中队列的具体实现,给出了代码,可以加强对队列这一数据结构的理解和应用。希望大家下载后自己实现一下,得出正确的结果,真正的理解这一结构的思想。数据结构中队列的具体实现,给出了代码,可以加强对队列...
数据结构课件及课堂笔记 栈和队列 计算机类
能够根据实际情况选择合适的存储结构,解决实际问题。 2.实验内容: 利用循环队列模拟舞伴配对问题: 1、利用循环队列模拟舞伴配对问题。在舞会上,男、女各自排成一队。舞会开始时。依次从男队和女队的队头各出一...
数据结构队列数据结构作业,队列的相关操作
数据结构作业之七循环队列,数据结构作业之七循环队列,数据结构作业之七循环队列
kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列...
c语言数据结构的队列实现,新建队列,入队列,出队列,删除队列
栈和队列考试题 复习 栈和队列考试题 复习栈和队列考试题 复习
数据结构栈和队列的课程指导上几实验代码 相抵部分
实验4 栈和队列 实验4 栈和队列 实验4 栈和队列 数据结构
完整代码 正确产生结果 三个类分开写 class linklist { protected: struct node { int data; node *next; }; node *head; int length; public:
这些笔记有助于你系统地复习和学习数据结构。 相关书籍推荐:为了更深入地理解数据结构,我们推荐了几本经典的教材和参考书籍。这些书籍将帮助你建立完整的数据结构知识体系。 适用人群: 这份学习资料适用于所有...
数据结构 严蔚敏 队列 queue
实验五 堆栈和队列的应用 一、实验目的 掌握堆栈和队列的使用。 二、实验内容 1、计算数学表达式的值。 输入数学表达式,输出表达式的计算结果。数学表达式由单个数字和运算符“+”、“-”、“*”、“/”、“(、...
数据结构栈和队列实验报告,请放心下载
提供三个数据结构,串,队列,栈,队列有循环队列和链队列。rar格式解压即可用
数据结构中关于队列的实现代码,数据结构中关于队列的实现代码,
数据结构-基本算法-循环队列(学生时代源码,调试可运行)