请高手们帮我看看我写的这个程序吧,无法运行,总是出错。。。我是初学者,感觉这些东西好难哦。。。拜托各位了。。。
链栈的实现,包括基本操作。
#include <iostream>
using namespace std;
template <class T>
struct Node
{
T date;
Node<T>*next;
};
template <class T>
class LinkStack
{
public:
LinkStack(){top=NULL;}
void Push(T x);
T Pop();
T GetTop();
bool Empty();
void DispStack();
private:
Node<T>*top;
};
template<class T>
LinkStack top;
void LinkStack<T>::Push(LinkStack top,int x)
{
LinkStack s;
s->date=x;
s->next=top;
top=s;
}
template<class T>
T LinkStack<T>::GetTop(LinkStack top)
{
s=top;
if (top!=NULL)
return s->next;
else return NULL;
}
template<class T>
T LinkStack<T>::Pop(LinkStack top)
{
LinkStack p;
if(top==NULL)throw"下溢";
x=top->date:
p=top;top=top->next;
delete p;
return x;
}
template<class T>
bool LinkStack<T>::Empty()
{
if(top==-1)
return 0;
return 1;
}
template<class T>
void LinkStack<T>::DispStack()
{
LinkStack top;
while(top!=NULLL)
{
cout<<"top->date";
top=top->next;
}
}
void main()
{
LinkStack<int>Stack;
int x,i,b,a=1;
cout<<"1、将元素入栈/n";
cout<<"2、将元素出栈/n";
cout<<"3、取栈顶元素(不删除)/n";
cout<<"4、判断栈链是否为空栈/n";
cout<<"5、退出/n";
cout<<endl;
while(a)
{
cout<<"请选择操作:";
cin>>b;
switch(b)
{
case 1:
cout<<"请输入入栈元素:";
cin>>x;
Stack.Push(x);
Stack.DispStack();
cout<<"入栈完成!";
break;
case 2:
Stack.Pop();
Stack.DispStack();
cout<<"出栈完成!";
break;
case 3:
cout<<"栈顶元素是:";
Stack.GetTop();
break;
case 4:
Stack.Empty();
break;
case 5:
a=0;
break;
}
}
}