stack.h

来自「此源代码是用VC++编写的」· C头文件 代码 · 共 70 行

H
70
字号
/**/
template<class T>
class CStack  
{
public:
	CStack()
	{
		Head = new Node;
		Head->Next = NULL;
	}


	void Push(T data)
	{
		Node* tem;
		tem = Head->Next;
		Head->Next = new Node;
		Head->Next->Next = tem;
		Head->Next->Data = data;
	}
	


	BOOL Pop(T& data)
	{
		if(Head->Next)
		{
			data = Head->Next->Data;
			Node* tem = Head->Next->Next;
			delete Head->Next;
			Head->Next = tem;
			return TRUE;
		}
		else
			return FALSE;
	}

	BOOL GetTop(T& data)
	{
		if(Head->Next)
		{
			data = Head->Next->Data;
			return TRUE;
		}
		return FALSE;
	}

	virtual ~CStack()
	{
		Node* pNode = Head;
		Node* tem;
		while(pNode)
		{
			tem = pNode->Next;
			delete pNode;
			pNode = tem;
		}
	}


protected:
	struct Node
	{
		T Data;
		Node* Next;
	};

	Node* Head;

};

⌨️ 快捷键说明

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