C++算法之 自己写一个简单的栈Stack

// Stack.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

enum{COUNT = 8};
typedef int TYPE;
class CStack
{
	TYPE m_pData[COUNT];
	int  m_nTop;
	int  m_nCount;


public:
	
	bool isFull()
	{
		return m_nTop+1>= m_nCount;
	}
	bool isEmpty()
	{
		return m_nTop < 0;
	}
	void push(const TYPE& data)
	{
		if (isFull())
		{
			return;
		}
		m_pData[++m_nTop] = data;
	}

	bool pop(TYPE& t)
	{
		if (isEmpty())
		{
			return false;
		}
		t = m_pData[m_nTop--];
		return true;

	}

	CStack();
	~CStack(){}
};

CStack::CStack()
{
	m_nTop = -1;
	m_nCount = COUNT;
}

int _tmain(int argc, _TCHAR* argv[])
{
	CStack stack;
	int i = 0;
	while (i < 8)
	{  
		stack.push(i++);
	}

	TYPE t;
	stack.pop(t);
	stack.pop(t);
	stack.pop(t);
	stack.pop(t);
	while (i<13)
	{
		stack.push(++i);
	}
	i = 0;


	while(stack.pop(t))
	{
		cout << t << endl;
	}

	getchar();
	return 0;
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。