📄 lstack.h
字号:
//--------------------------//
// //
// 链栈类 //
// //
//--------------------------//
#if !defined(_INC_LSTACK_OO)
#define _INC_LSTACK_OO
#include<stdlib.h>
#include "D:\vc_h_file\Node.h"
template<class T>
class LStack
{
private:
Node<T> *top;
int size;
public:
LStack();
~LStack();
int Size()const;
int Empty()const;
T Peek()const;
void Push(T item);
T Pop();
void Clear();
};
template<class T>
LStack<T>::LStack()
{
top=new Node<T>;
if(top==NULL)
{
cerr<<"overflow\n"<<endl;
exit(1);
}
size=0;
}
template<class T>
LStack<T>::~LStack()
{
while(top->NextNode()!=NULL)
top->DeleteAfter();
delete top;
}
template<class T>
int LStack<T>::Size()const
{
return(size);
}
template<class T>
int LStack<T>::Empty()const
{
if(size==0)
return(1);
return(0);
}
template<class T>
T LStack<T>::Peek()const
{
Node<T> *ptr;
if(size==0)
{
cerr<<"Stack is empty!\n"<<endl;
exit(1);
}
ptr=top->NextNode();
return(ptr->data);
}
template<class T>
void LStack<T>::Push(T item)
{
top->InsertAfter(item);
size++;
}
template<class T>
T LStack<T>::Pop(void)
{
Node<T> *ptr;
T item;
if(size==0)
{
cerr<<"Stack is empty!\n"<<endl;
exit(1);
}
ptr=top->NextNode();
item=ptr->data;
top->DeleteAfter();
size--;
return(item);
}
template<class T>
void LStack<T>::Clear()
{
while(top->NextNode()!=NULL)
top->DeleteAfter();
size=0;
}
#endif //_INC_LSTACK_OO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -