用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
2007-01-02 02:06
435 查看
/*_############################################################################
_##
_## 用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
_## Author: xwlee
_## Time: 2007.01.02
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## stack.h 文件
_##########################################################################*/
#include <stdio.h>
#include <stdlib.h>
#define GENERIC_STACK( STACK_TYPE, SUFFIX, STACK_SIZE ) /
static STACK_TYPE stack##SUFFIX[ STACK_SIZE ]; /
static int top_element##SUFFIX = -1; /
/
int is_empty##SUFFIX( void ) /
{ /
return top_element##SUFFIX == -1; /
} /
/
int is_full##SUFFIX( void ) /
{ /
return top_element##SUFFIX == STACK_SIZE-1; /
} /
/
void push##SUFFIX( STACK_TYPE value ) /
{ /
if( is_full##SUFFIX() == 1 ) /
{ /
printf("stack is already full./n"); /
exit(0); /
} /
top_element##SUFFIX += 1; /
stack##SUFFIX[ top_element##SUFFIX ] = value; /
} /
/
void pop##SUFFIX( void ) /
{ /
if( is_empty##SUFFIX() == 1 ) /
{ /
printf("stack is already full./n"); /
exit(0); /
} /
top_element##SUFFIX -= 1; /
} /
/
STACK_TYPE top##SUFFIX( void ) /
{ /
if( is_empty##SUFFIX() == 1 ) /
{ /
printf("stack is already full./n"); /
exit(0); /
} /
return stack##SUFFIX[ top_element## SUFFIX ]; /
}
_##
_## 用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
_## Author: xwlee
_## Time: 2007.01.02
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## stack.h 文件
_##########################################################################*/
#include <stdio.h>
#include <stdlib.h>
#define GENERIC_STACK( STACK_TYPE, SUFFIX, STACK_SIZE ) /
static STACK_TYPE stack##SUFFIX[ STACK_SIZE ]; /
static int top_element##SUFFIX = -1; /
/
int is_empty##SUFFIX( void ) /
{ /
return top_element##SUFFIX == -1; /
} /
/
int is_full##SUFFIX( void ) /
{ /
return top_element##SUFFIX == STACK_SIZE-1; /
} /
/
void push##SUFFIX( STACK_TYPE value ) /
{ /
if( is_full##SUFFIX() == 1 ) /
{ /
printf("stack is already full./n"); /
exit(0); /
} /
top_element##SUFFIX += 1; /
stack##SUFFIX[ top_element##SUFFIX ] = value; /
} /
/
void pop##SUFFIX( void ) /
{ /
if( is_empty##SUFFIX() == 1 ) /
{ /
printf("stack is already full./n"); /
exit(0); /
} /
top_element##SUFFIX -= 1; /
} /
/
STACK_TYPE top##SUFFIX( void ) /
{ /
if( is_empty##SUFFIX() == 1 ) /
{ /
printf("stack is already full./n"); /
exit(0); /
} /
return stack##SUFFIX[ top_element## SUFFIX ]; /
}
相关文章推荐
- C++实现字符串数组作为函数的参数的反序输出
- Cracking coding interview(3.1)用一个数组实现3个堆栈
- 一个有n个整数的递增有序数组。对它进行向左或向右循环移动若干次后,要求给出一个代码实现,尽可能快地从这个数组中寻找指定值所在的位置
- 在一个数组中实现两个堆栈
- 面试题:实现在一个长度为255的数组,为数组中每一项填入1-255之间的数并且保证不重复
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。
- 编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果
- 4-7 在一个数组中实现两个堆栈
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值
- 实现数组作为函数参数传递,切返回值也是数组
- 数组作为参数的一个例子
- 编程题:数组名作为函数参数。需要根据下面要求来实现
- C#使用泛型数组简单实现一个列表List
- C语言下的创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 【嵌入式系统学习记录】练习:编写一个函数,求字符数组的前n个字符中最大字符的地址并返回该地址,字符数组和n作为函数的参数;
- 泛型方法中实例化一个有参数的泛型实例
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 4-7 在一个数组中实现两个堆栈
- 一个数组实现两个堆栈