/*_############################################################################
_##
_## 靜態數組實現的堆棧
_## Author: xwlee
_## Time: 2006.12.30
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## static_array.cpp 檔案
_##########################################################################*/
#include "stack.h"
#include <assert.h>
// --------------------------靜態數組-------------------------------
// 堆棧中數的最大限制.
#define STACK_SIZE 100
// 儲存堆棧中值的數組.
static STACK_TYPE stack[ STACK_SIZE ];
// 指向堆棧頂部元素的指標.
static int top_element = -1;
// --------------------------靜態數組-------------------------------
// push函數
void push( STACK_TYPE value )
{
assert( !is_full() ); // 若堆棧已滿,斷言成立.
top_element += 1;
stack[ top_element ] = value;
}
// pop函數
void pop( void )
{
assert( !is_empty() ); // 若堆棧已空,斷言成立.
top_element -= 1;
}
// top函數
STACK_TYPE top( void )
{
assert( !is_empty() ); // 若堆棧已空,斷言成立.
return stack[ top_element ];
}
// is_empty函數
int is_empty( void )
{
return top_element == -1;
}
// is_full函數
int is_full( void )
{
return top_element == STACK_SIZE - 1;
}