我这个栈有什么问题?

alonglht 2002-11-29 11:03:12
头文件stack1.h
#include<iostream>

using namespace std;

template <class Type> class Stack;

template <class Type> class StackNode {
friend class Stack <Type>;
private:
Type data;
StackNode <Type> *link;
StackNode (Type d=0; StackNode <Type> *l=NULL): data(d),link(l) {} //构造函数
};


template <class Type> class Stack {
public:
Stack() : top (NULL) {}
~Stack();
void Push ( const Type & item);
Type Pop ();
Type Gettop() ;
void MakeEmpty() {top=NULL;};
int IsEmpty () const {return top ==NULL;}
private:
StackNode <Type> * top;
};

template <class type> Stack<Type>::~Stack(){
StackNode<Type> * p;
while ( top!=NULL) {p=top; top=top->link; delete p;}
}

template <class Type> Stack<Type>::Push (const Type & item){
top = new StackNode <Type> (item,top);
}

template <class Type> Type Stack<Type>::Pop() {
assert(!IsEmpty());
StackNode <Type> *p=top;
Type retvalue =p->data;
top = top->link;
delete p;
return retvalue;
}

template <class Type> Type Stack<Type> :: Gettop() {
assert (!IsEmpty());
return top->data;
}

执行文件
002.cpp
#include<iostream>
#include"stack1.h"

using namespace std;

int main(){
Stack a;
a.Push(2);
a.Push(5);
cout<<a.Gettop()<<end;
return 0;
}
...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

70,032

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧