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

📄 tagstack.h

📁 这是一个学生信息管理系统
💻 H
字号:
#pragma once //这些代码由王昌栋编写,未经允许,不得随便改动,如有问题欢迎提出!

#include <assert.h>
#include <stdlib.h>
#include "tagStackNode.h"

template <class Type> class tagStackNode;
template <class Type> class tagStack                 //
{
public:
	tagStack();                                      //
	~tagStack();                                     //
	void Push(const Type &item);                     //
	Type Pop();                                      //
	Type GetTop();                                   //
	void MakeEmpty();                                //
	bool IsEmpty();                                  //
private:
	tagStackNode<Type> *top;                         //
};


template <class Type> tagStack <Type>::tagStack()    //
{
	top=NULL;
}

template <class Type> tagStack <Type>::~tagStack()   //
{
	tagStackNode <Type> *p;
	while(top!=NULL)
	{
		p=top;
		top=top->link;
		delete p;
	}
}

template <class Type> void tagStack <Type>::Push(const Type &item)
{
	top=new tagStackNode <Type> (item, top);
}

template <class Type> Type tagStack <Type>::Pop()    
{
	assert(!IsEmpty());
	tagStackNode <Type> *p=top;
	Type RetValve=p->data;
	top=top->link;
	delete p;
	return RetValve;

}

template <class Type> Type tagStack <Type>::GetTop ()
{
	assert(!IsEmpty());
	return top->data;

}

template <class Type> bool tagStack <Type>::IsEmpty ()
{
	return top==NULL;
}

template <class Type> void tagStack <Type>::MakeEmpty ()
{
	tagStackNode <Type> *p;
	while(top!=NULL)
	{
		p=top;
		top=top->link;
		delete p;
	}
}

⌨️ 快捷键说明

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