⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linkstack.h

📁 10个比较经典的C++程序。初学者就先多学习学习别人吧。
💻 H
字号:
#ifndef LINKSTACK_CLASS
#define LINKSTACK_CLASS
#include <iostream>
#include <cstdlib>
using namespace std;
#include "link.h"
template <class T>
class LinkStack
{    LinkedList<T> StackList;   	//用于存放栈的链表对象
public:
     LinkStack(void); 			//构造函数
     void Push(const T& item);  	//入栈
     T Pop(void);				//出栈
     void ClearStack(void);		//清空栈
     T Peek(void) ;        	//访问栈顶元素
     int StackEmpty(void) const;	//监测栈是否为空
};
template <class T>				//构造函数
LinkStack<T>::LinkStack(void) {}
template <class T>				//链表类成员函数ListEmpty测试栈空否
int LinkStack<T>::StackEmpty(void) const{    return StackList.ListEmpty();}
template <class T>				//链表类成员函数ClearList清空栈
void LinkStack<T>::ClearStack(void){    StackList.ClearList();}
template <class T>				//链表类成员函数InsertFront在栈顶插入一项
void LinkStack<T>::Push(const T& item){   StackList.InsertFront(item);}
template <class T>				//返回栈首元素的数值
T LinkStack<T>::Pop(void)
{	T tmp;
	if (StackList.ListEmpty())	//测试栈空否,若空则中止
    {   cerr << "Calling QFront for an empty queue!" << endl;        exit(1); }
    StackList.Reset();			//重新设置栈头并返回其值
	tmp=StackList.Data();		//将顶元素赋给tmp
	StackList.DeleteFront();		//删除顶元素
    return tmp;  				//返回顶元素
}
template <class T>				//返回栈顶元素的数值
T LinkStack<T>::Peek(void)
{   if (StackList.ListEmpty())	//测试栈空否,若空则终止
    {   cerr << "Calling QFront for an empty queue!" << endl;        exit(1);    }
    StackList.Reset();       	//重新设置栈顶并返回其值
    return StackList.Data();
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -