g++ 问题~
发表于 : 2009-04-19 13:56
我用 g ++ 运行:
#include <iostream>
using namespace std;
struct s
{
int data;
s *top;
};
class stack
{
public:
int n;
public:
s *base;
stack();
~stack();
int empty();
void push(int i);
void pop();
};
stack::stack()
{
base=new s;
base->top=NULL;
}
stack::~stack()
{
}
void stack::push(int i)
{
n=i;
s *p;
p=new s;
p->top=base;
p->data=n;
base=p;
}
void stack::pop()
{
s *p;
p=base;
base=p->top;
n=p->data;
delete p;
}
int stack::empty()
{
if (base->top!=NULL)
return 1;
else return 0;
}
#include "flie1.h"
int main()
{ int n;
stack a;
cin>>n;
while (n)
{
a.push(n%8);
n=n/8;
}
while (a.empty())
{
a.pop();
cout<<a.n<<" ";
}
return 0;
}
joe@joe-laptop:~/workspace/data/栈/链栈$ g++ main.cc -o main
joe@joe-laptop:~/workspace/data/栈/链栈$ ./main
1348 //输入
按道理应得到:2504
但是我运行后是这样的:
joe@joe-laptop:~/workspace/data/栈/链栈$ g++ main.cc -o main
joe@joe-laptop:~/workspace/data/栈/链栈$ ./main
1348
joe@joe-laptop:~/workspace/data/栈/链栈$ /链栈$
它根本就不输出,请问是怎么一回事阿??
#include <iostream>
using namespace std;
struct s
{
int data;
s *top;
};
class stack
{
public:
int n;
public:
s *base;
stack();
~stack();
int empty();
void push(int i);
void pop();
};
stack::stack()
{
base=new s;
base->top=NULL;
}
stack::~stack()
{
}
void stack::push(int i)
{
n=i;
s *p;
p=new s;
p->top=base;
p->data=n;
base=p;
}
void stack::pop()
{
s *p;
p=base;
base=p->top;
n=p->data;
delete p;
}
int stack::empty()
{
if (base->top!=NULL)
return 1;
else return 0;
}
#include "flie1.h"
int main()
{ int n;
stack a;
cin>>n;
while (n)
{
a.push(n%8);
n=n/8;
}
while (a.empty())
{
a.pop();
cout<<a.n<<" ";
}
return 0;
}
joe@joe-laptop:~/workspace/data/栈/链栈$ g++ main.cc -o main
joe@joe-laptop:~/workspace/data/栈/链栈$ ./main
1348 //输入
按道理应得到:2504
但是我运行后是这样的:
joe@joe-laptop:~/workspace/data/栈/链栈$ g++ main.cc -o main
joe@joe-laptop:~/workspace/data/栈/链栈$ ./main
1348
joe@joe-laptop:~/workspace/data/栈/链栈$ /链栈$
它根本就不输出,请问是怎么一回事阿??