永发信息网

链栈的初始化代码(C++)

答案:1  悬赏:80  手机版
解决时间 2021-05-17 23:07
链栈的初始化代码(C++),谢谢啦
最佳答案

// file lstack.h
// linked stack
#ifndef LinkedStack_
#define LinkedStack_


template <class T>
class Node {
public:
T data;
Node<T> *link;
};


// improper array, find, insert, or delete index or deletion from empty structure
class OutOfBounds {
public:
OutOfBounds() {}
};


template<class T>
class LinkedStack {
public:
LinkedStack() {top = 0;}
~LinkedStack();
bool IsEmpty() const {return top == 0;}
bool IsFull() const;
T Top() const;
LinkedStack<T>& Add(const T& x);
LinkedStack<T>& Delete(T& x);
private:
Node<T> *top; // pointer to top node
};


template<class T>
LinkedStack<T>::~LinkedStack()
{// Stack destructor..
Node<T> *next;
while (top) {
next = top->link;
delete top;
top = next;
}
}


template<class T>
bool LinkedStack<T>::IsFull() const
{// Is the stack full?
Node<T> *p = new Node<T>;
if(p != NULL)
{
delete p;
return false;
}
return true;
}


template<class T>
T LinkedStack<T>::Top() const
{// Return top element.
if (IsEmpty()) throw OutOfBounds();
return top->data;
}


template<class T>
LinkedStack<T>& LinkedStack<T>::Add(const T& x)
{// Add x to stack.
Node<T> *p = new Node<T>;
p->data = x;
p->link = top;
top = p;
return *this;
}


template<class T>
LinkedStack<T>& LinkedStack<T>::Delete(T& x)
{// Delete top element and put it in x.
if (IsEmpty()) throw OutOfBounds();
x = top->data;
Node<T> *p = top;
top = top->link;
delete p;
return *this;
}


#endif;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
枣阳市襄樊枣阳市刘升镇哪位知道具体地址啊
《泡沫之夏》怎么在网上看不到呢?
QQ游戏如何玩?
大海的边缘是海边吗?
鲁迅是什么家啊
攸县株洲好迪家私(攸县专卖店)我想知道这个在
超级巨声第14集下载 最新一期 超级巨声超級巨
名家描写夏天的句子,描写夏天的名人名言
我《丝路英雄》声望都610杂还是《大司马长史
有网站看书不要钱的
用免洗面膜, 皮肤会过敏吗?
家庭记账软件
襄城县许昌河南省农村信用社(襄城县农业机械
我后背纹了一个龙腾,在想纹个钟馗是不行?有
什么叫蹲苗
推荐资讯
樱桃小丸子,没了樱桃怎么办?
Q宠大乐斗是什么类型的游戏,有制作软件吗?
为什么最近QQ农场老是打不开啊
为什么人总是这么自作聪明?
天國德郵遞員,有誰看了?
寻仙从54级怎麽快速升到60级!
QQ宠物怎么开通?
請問這張圖片是《魯魯修》哪一集的?
也许我朋友说的对放手让她去追求属于她的爱但
什么方法去痘最快
鹿鼎记ol还有人玩吗
《我想要说》在《转角遇到爱》哪一集出现
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?