首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-04-19 
一个链栈有些地方不行大家帮忙改改#includeiostreamusing namespace stdtemplateclass DataTypestruc

一个链栈有些地方不行大家帮忙改改
#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>();

热点排行