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

📄 stack.h

📁 source code for compute,i am sure it will be good for you.It can be complied on cc++ plafort
💻 H
字号:
# ifndef STACK_H
# define STACK_H
# include <iostream.h>
# include <stdlib.h>
# include <assert.h>          //断言
# include "Stacknode.h"
template <class Type>
class stack
{
public:
	stack():top(NULL){} //构造函数
	~stack();
	void push(const Type &item);              //将数据item压入栈中
	Type pop();                 //取出栈顶的数据,同时top下移一位
	Type gettop();               //取出栈顶的数据,top的指向位置不变
	void makeempty();                //将栈清空
	int isempty() const;                        //判断栈是否为空
private:
	stacknode<Type> *top;        //指向栈顶的指针
};


template <class Type>
stack<Type>::~stack()
{
	stacknode<Type> *p;
	while(top!=NULL)            //将栈内的结点逐一删去
	{
		p=top;
		top=top->link;
	    delete p;
	}
}

template <class Type>
void stack<Type>::push(const Type &item)
{
	top=new stacknode<Type> (item,top);          //数据item压入栈中
}

template <class Type>
Type stack<Type>::pop()
{
	assert(!isempty());            //断言栈不空
	stacknode<Type> *p=top;
	Type retvalue =p->data;            //取数据
	top=top->link;                  //栈顶指针下移一位
	delete p;
	return retvalue;            //返回栈顶的数据
}

template <class Type>
Type stack<Type>::gettop()
{
	assert(!isempty());
	return top->data;           //直接取出栈顶的数据
}

template <class Type>
void stack<Type>::makeempty()
{
	top=NULL;           //直接将栈顶指针指向栈底
}

template <class Type>
int stack<Type>::isempty() const                   //判断栈是否为空
{
	return top==NULL; 
}


# endif




⌨️ 快捷键说明

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