C++队列类以及其实现的问题,大家来帮我看看哪个地方错了

as11qwer 2008-11-02 03:31:45
把错的地方注释下啊,谢谢大家!!!大家一定要帮我实现啊!!
#include<iostream.h>
#include<stdio.h>
typedef int DataType;
const int MaxQSize = 50;
class Queue
{
private:
// queue array and its parameters
int front,rear,count;
DataType qlist[MaxQSize];
public:
void setQueue(int *x){x=qlist;}//传递地址
// constructor
Queue(void):front(0),rear(0),count(0){} // initialize integer

//data members

// queue modification operations
void QInsert(const DataType &item)
{
if (QFull()) return;
qlist[rear++]=item;
rear%=MaxQSize;
++count;
}
DataType QDelete(void)
{
DataType t;
if(QEmpty()) return 0;
t=qlist[front++];
front%=MaxQSize;
--count;
return t;
}
void ClearQueue(void)
{
front=rear=count=0;
}

// queue access
DataType QFront(void)
{return qlist[front++];}
// queue test methods
int QLength(void) const{return count;}
int QEmpty(void) const{return count==0;}
int QFull(void) const{return count==MaxQSize;}
};
void main()
{
Queue Q;
int i;int b;
int a[MaxQSize];
Q.setQueue(a);
cout<<"请输入一串字符:"<<endl;
gets(a);
cout<<"请输入要插入的字符:"<<endl;、
cin>>b;
Q.QInsert(b);
cout<<"插入字符后的字符串为:"<<endl;
for(i=0;i<MaxQSize;i++)
cout<<a[i];
cout<<"删除第一个元素后字符串为:"<<endl;
for(i=0;i<MaxQSize;i++)
cout<<a[i];
cout<<"删除的元素值为:"<<endl;
cout<<Q.QDelete()<<endl;
}






...全文
116 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
baihacker 2008-11-02
  • 打赏
  • 举报
回复

请输入一串字符:
123456
请输入要插入的字符:
1
插入字符后的字符串为:
1234561
删除第一个元素后字符串为:
1234561
删除的元素值为:
1
234561
Press any key to continue


#include <iostream.h>
#include <stdio.h>
#include <string.h>
typedef char DataType;
const int MaxQSize = 50;
class Queue
{
private:
// queue array and its parameters
int front,rear,count;
DataType qlist[MaxQSize];
public:

Queue(void):front(0),rear(0),count(0){} // initialize integer

//data members

// queue modification operations
void QInsert(const DataType &item)
{
if (QFull()) return;
qlist[rear++]=item;
rear%=MaxQSize;
++count;
}
DataType QDelete(void)
{
DataType t;
if(QEmpty()) return 0;
t=qlist[front++];
front%=MaxQSize;
--count;
return t;
}
void ClearQueue(void)
{
front=rear=count=0;
}
void Show()
{
for (int i = 0; i < count; ++i)
cout << qlist[(i+front)%MaxQSize];
cout << endl;
}
// queue access
DataType QFront(void)
{return qlist[front++];}
// queue test methods
int QLength(void) const{return count;}
int QEmpty(void) const{return count==0;}
int QFull(void) const{return count==MaxQSize;}
};
void main()
{
Queue Q;
int i;char b;
char a[MaxQSize];
cout <<"请输入一串字符:" <<endl;
gets(a);
for (i = 0; i < strlen(a); ++i)
Q.QInsert(a[i]);
cout <<"请输入要插入的字符:" <<endl;
cin>>b;
Q.QInsert(b);
cout <<"插入字符后的字符串为:" <<endl;
Q.Show();
cout <<"删除第一个元素后字符串为:" <<endl;
Q.Show();
cout <<"删除的元素值为:" <<endl;
cout <<Q.QDelete() <<endl;
Q.Show();
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧