istack.cpp

来自「自上而下语法分析器设计」· C++ 代码 · 共 49 行

CPP
49
字号
// istack.cpp: implementation of the istack class.
//
//////////////////////////////////////////////////////////////////////

#include "istack.h"
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

istack::istack(int size)
	:m_size(size)
{
	assert(size > 0);
	m_sp = 0;
	m_stack = new int[size];
}

istack::~istack()
{
	delete[] m_stack;
}
void istack::push(int e)
{
	if (m_sp < m_size)
	{
		m_stack[m_sp] = e;
		m_sp++;
	}
	else
	{
		printf("stack overflow! sp=%3d", m_sp);
		exit(1);
	}
}
int istack::pop()
{
	if (m_sp > 0)
	{
		m_sp--;
		return m_stack[m_sp];
	}
	else
		return -1;
}

⌨️ 快捷键说明

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