两个栈模拟一人队列,代码错在哪里?在主函数中加入代码就会出错.为什么?

琴声悠扬TODO 2014-04-05 06:13:44
#include <iostream>

using namespace std;


template <class T>
class Stack
{
//private:

public:
T * st;
int top; //顶栈的位置
int mSize; //最大的空间

void push(const T item)
{
if(top==mSize-1)
{
cout<<"1 满 \n";
}
else
{
st[++top]=item;
}
}
int pop(T& item)
{
if(top==-1)
{
cout<<"空,\n";
return 0;
}
else
{
item=st[top--];
return item;
}
}

};


template <class T>
class S_Queue
{
private:
Stack<int> A;
Stack<int> B;
public:
void enQueue(T item)
{
A.push(item);
while(!isempty(A))
{
B.push(A.pop(item));
}
}

void deQueue(T &item)
{
B.pop(item);
while(!isempty(B))
{
A.push(B.pop(item));
}
}
int isempty(Stack<T> S)
{
if(S.top==-1)return 1;
else return 0;
}
};


int main()
{
Stack<int> A;
A.push(90);A.push(11);A.push(23);A.push(67);A.push(9);A.push(34);
S_Queue<int> S;
}
以上是我写的,用两个栈模拟一个队列.
可是大主函数中加入以下的码时就会出错,为什么??
// S.enQueue(46);
// int i;
//S.enQueue(i);
//return 0;
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcdabing 2014-04-07
  • 打赏
  • 举报
回复
便要随随便便玩指针,你这个必须跟T * st;这个有关系,检查一下吧

65,207

社区成员

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

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