stack.h

来自「本程序是实现二叉树跟树的常用算法」· C头文件 代码 · 共 94 行

H
94
字号
template<typename T>class stack;

template<typename T>class stackNode
{

private:
	
	stackNode<T> *next;

	T element;

public:
	
	stackNode(T data,stackNode<T> *l){ element=data; next=l; }

	friend class stack<T>;
};

template<typename T>class stack{

public:

	stack(){ top=NULL;}

	~stack();

	void Push(T data);

	T Pop();

	T GetTop();

	bool IsEmpty(){ return top==NULL;}

	void  MakeEmpty();

private:

	stackNode<T> *top;

};

template<typename T>stack<T>::~stack()
{
	MakeEmpty();
}

template<typename T>void stack<T>::MakeEmpty()
{
	stackNode<T> *temp;

	while(top!=NULL)
	{
		temp=top;

		top=top->next;

		delete temp;
	}
}

template<typename T>void stack<T>::Push(T data)
{
	stackNode<T> *current;

	current=new stackNode<T>(data,top);

	top=current;
}

template<typename T>T stack<T>::Pop()
{
	assert(!IsEmpty());

    stackNode<T> *temp;

	T data;

	temp=top;

	data=temp->element;

	top=top->next;

	delete  temp;

	return data;
}
template<typename T>T stack<T>::GetTop()
{
   assert(!IsEmpty());

   return top->element;
}

⌨️ 快捷键说明

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