看看这个代码错哪了感谢
#include<iostream>
using namespace std;
/********************************************************/
const int StackSize=10;
template<class T>
class SeqStack
{
private:
T data[StackSize];
int top;
public:
SeqStack()
{
top=-1;
}
~SeqStack()
{
}
void push(T x);
T pop();
T GetTop()
{
if(top!=-1)
return data[top];
}
bool Empty()
{
top=-1?(return 1):(return 0);
}
};
template<class T>
void SeqStack<T>::push (T x)
{
if(top==StackSize-1)
throw "上溢";
top++;
data[top]=x;
}
template<class T>
T SeqStack<T>::pop()
{
T x;
if(top==-1)
throw "下溢";
x=data[top--];
return x;
}
/****************************************************/
template<class T>
struct Node
{
T data;
Node<T> *next;
};
template<class T>
class LinkStack
{
private:
Node<T> *top;
public:
LinkStack()
{
top=NULL;
}
~LinkStack()
{
while(top)
{
Node<T> *p;
p=top->next;
delete top;
top=p;
}
}
void push(T x);
T pop();
T gettop()
{
if(top!=NULL)
return top->data;
}
bool Empty()
{
top==NULL?return 1:return 0;
}
};
template<class T>
void LinkStack<T>::push(T x)
{
Node<T> *s;
s=new Node<T>; //没有申请空间时 会出现错误!
s->data=x;
s->next=top;
top=s;
}
template<class T>
T LinkStack<T>::pop()
{
T x;
Node<T> *p;
if(top==NULL)
throw "下溢";
x=top->data;
p=top;
top=top->next;
delete p;
return x;
}
/******************************************************/
int main()
{
SeqStack<int> aa;
LinkStack<int> bb;
for(int i=1;i<=5;i++)
aa.push(i);
cout<<"顺序栈出栈:";
for( i=0;i<5;i++)
{
int k=0;
k=aa.pop();
cout<<k<<" ";
}
cout<<endl;
for( i=1;i<=5;i++)
bb.push(i);
cout<<"链式栈出栈:";
for( i=1;i<=5;i++)
{
int j=0;
j=bb.pop();
cout<<j<<" ";
}
cout<<endl;
}