stack.cpp

来自「棧的实现」· C++ 代码 · 共 117 行

CPP
117
字号
// stack.cpp

//数组栈类实现

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

CArrayStack::CArrayStack()
{
	top_pointer=0;
}
CArrayStack::CArrayStack(const CArrayStack &s)
{
    top_pointer=1;
	for(;top_pointer<=s.top_pointer;top_pointer++)
	{
		ArrayOfStack[top_pointer]=s.ArrayOfStack[top_pointer];
	}
	top_pointer--;
}
CArrayStack::~CArrayStack()
{
}

bool CArrayStack::pop(char *c)
{
	if(top_pointer!=0)
	{
	  *c=ArrayOfStack[top_pointer];
	  top_pointer--;
	  return true;
	}
	else
	{
		return false;
	}
}

bool CArrayStack::push(char c)
{
	if(top_pointer<MAXSIZE)
	{
		top_pointer++;
		ArrayOfStack[top_pointer]=c;
		return true;
	}
	else
	{
		return false;
	}
}
bool CArrayStack::IsEmpty(void)
{
	if(top_pointer==0)
	{
		return true;
	}
	else
	{
		return false;
	}
}
bool CArrayStack::IsFulll(void)
{
	if(top_pointer<MAXSIZE+1)
	{
		return false;
	}
	else
	{
		return true;
	}
}
void CArrayStack::makeEmpty(void)
{
	top_pointer=0;
}
bool CArrayStack::operator == (const CArrayStack &s)
{
	int i;
	if(top_pointer!=s.top_pointer)
	{
		return false;
	}
	for(i=1;i<=top_pointer;i++)
	{
		if(ArrayOfStack[i]!=s.ArrayOfStack[i])
		{
			return false;
		}
	}
	return true;
}
void CArrayStack::operator =(const CArrayStack &s)
{
   top_pointer=1;
   for(;top_pointer<=s.top_pointer;top_pointer++)
   {
	   ArrayOfStack[top_pointer]=s.ArrayOfStack[top_pointer];
   }
   top_pointer--;
}
void CArrayStack::Print(void)
{
  int i;
  if(top_pointer==0)
  {
	  cout<<"(empty)"<<endl;
	  return;
  }
  for(i=1;i<=top_pointer;i++)
  {
	  cout<<ArrayOfStack[i]<<" ";
  }
  cout <<endl;
}

⌨️ 快捷键说明

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