?? linkstack.cpp
字號(hào):
//LinkStack.cpp
#include "LinkStack.h"
/*
* 前置條件:棧不存在
* 輸 入:無
* 功 能:棧的初始化
* 輸 出:無
* 后置條件:構(gòu)造一個(gè)空棧
*/
template <class T>
LinkStack<T>::LinkStack( )
{
top=NULL;
}
/*
* 前置條件:棧已存在
* 輸 入:無
* 功 能:銷毀棧
* 輸 出:無
* 后置條件:釋放棧所占用的存儲(chǔ)空間
*/
template <class T>
LinkStack<T>::~LinkStack( )
{
while (top)
{
Node<T> *p;
p=top->next;
delete top;
top=p;
}
}
/*
* 前置條件:棧已存在
* 輸 入:節(jié)點(diǎn)s
* 功 能:在棧頂插入該節(jié)點(diǎn)
* 輸 出:無
* 后置條件:如果插入成功,棧頂增加了一個(gè)元素
*/
template<class T>
void LinkStack<T>::Push(T x)
{
Node<T> *s;
s=new Node<T>;
s->data = x; //申請(qǐng)一個(gè)數(shù)據(jù)域?yàn)閤的結(jié)點(diǎn)s
s->next = top;
top=s; //將結(jié)點(diǎn)s插在棧頂
}
/*
* 前置條件:棧已存在
* 輸 入:無
* 功 能:刪除棧頂元素
* 輸 出:如果刪除成功,返回被刪元素值,否則,拋出異常
* 后置條件:如果刪除成功,棧頂減少了一個(gè)元素
*/
template <class T> T LinkStack<T>::Pop( )
{
Node<T> *p;
int x;
if (top==NULL) throw "下溢";
x=top->data; //暫存棧頂元素
p=top;
top=top->next; //將棧頂結(jié)點(diǎn)摘鏈
delete p;
return x;
}
/*
* 前置條件:棧已存在
* 輸 入:無
* 功 能:讀取當(dāng)前的棧頂元素
* 輸 出:若棧不空,返回當(dāng)前的棧頂元素值
* 后置條件:棧不變
*/
template <class T>
T LinkStack<T>::GetTop( )
{
if (top!=NULL)
return top->data;
}
/*
* 前置條件:棧已存在
* 輸 入:無
* 功 能:判斷棧是否為空
* 輸 出:如果棧為空,返回1,否則,返回0
* 后置條件:棧不變
*/
template <class T> bool LinkStack<T>::Empty( )
{
if(top==NULL)
return 1;
else
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -