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

📄 stack.h

📁 穷举法进行三八二十四的计算。列举所有可能的表达式进行计算筛选。
💻 H
字号:
// Stack.h: interface for the CStack class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_STACK_H__980D3DD0_B4C2_11D9_ABF6_000AEB106808__INCLUDED_)
#define AFX_STACK_H__980D3DD0_B4C2_11D9_ABF6_000AEB106808__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
template <class T>
struct  SNode
{
 T data;
 SNode* pNext;
};

template <class T>
class CStack  
{
protected:
	SNode<T>* m_pTop;
	int m_nElemNum;
public:
	CStack()
	{
	 m_pTop=NULL;
	 m_nElemNum=0;
	}
	virtual ~CStack()
	{
	 clear();
	}
	void initiate()
	{
		clear();
	}
	void push(T& el);
	bool pop(T& el);
	void clear();
	bool empty();
	T& top();
	int getCount();
};
 template <class T>
 void CStack<T>::push(T& el)
 {
	 SNode<T>* p=new SNode<T>;
	 p->data=el;
	 p->pNext=m_pTop;
	 m_pTop=p;
	 m_nElemNum++;
 }
 template <class T>
 bool CStack<T>::pop(T& el)
 {
	if(m_nElemNum==0) return false;
	SNode<T>* p=m_pTop;
	m_pTop=p->pNext;
	m_nElemNum--;
	el=p->data;
	delete p;
	return true;
 }
 template<class T>
	 T& CStack<T>::top()
 {
	 T temp;
	 if(m_nElemNum!=0)
		 temp=m_pTop->data;
	 return temp;
 }
 template<class T>
	 int CStack<T>::getCount()
 {
	 return m_nElemNum;
 }
 template<class T>
	 bool CStack<T>::empty()
 {
	 bool bEmpty;
	 if(m_nElemNum==0)bEmpty=true;
	 else bEmpty=false;
	 return bEmpty;
 }
 template<class T>
	 void CStack<T>::clear()
 {
	 SNode<T>* p;
	 while(m_pTop!=NULL)
	 {
		p=m_pTop;
		m_pTop=m_pTop->pNext;
		delete p;
		m_nElemNum--;
	 }
	 m_nElemNum=0;
 }
	
#endif // !defined(AFX_STACK_H__980D3DD0_B4C2_11D9_ABF6_000AEB106808__INCLUDED_)

⌨️ 快捷键说明

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