读书人

一个链栈有些地方不行大家帮忙改改解决

发布时间: 2012-04-19 14:36:43 作者: rapoo

一个链栈有些地方不行大家帮忙改改
#include<iostream>
using namespace std;
template<class DataType>
struct Node
{
DataType data;
Node<DataType> *next;
};
template<class DataType>
class LinkStack
{
private:
Node<DataTpe> *top;
public:
LinkStack()
{
top=new Node;
top->next=NULL;
}
void Push(DataType x)
{
Node<DataType> s;
s=new Node;
s->next=top;
top=s;
}
DataType Pop()
{
Node<DataType> *p;//定义记录栈顶元素的指针
p=top;
top=top->next;
return p->data;//实现返回还是先return?
delete p;
}
DataType GetTop()
{
cout<<top->data<<endl;
return top->data;
}
bool Empty()
{
if(top->next==NULL)
return false;
else
return true;
}

};
void main()
{
LinkStack<int> S;
}

[解决办法]
return p->data;//实现返回还是先return?
delete p;

你return了,还怎么delete
[解决办法]
这个地方也不对:

C/C++ code
void Push(DataType x){    Node<DataType> *s;    s=new Node<DataType>;//指针申明new    s->data=x;//丢了一句    s->next=top;    top=s;}void GetTop(){    cout<<Pop()<<endl;//直接调用pop,无返回值}
[解决办法]
s=new Node<DataType> node;
--------------------
你上面这句怎么回事?

s=new Node<DataType>();

读书人网 >C#

热点推荐