/*_############################################################################
_##
_## 静态数组实现的堆栈
_## 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;
}
_##
_## 静态数组实现的堆栈
_## 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;
}