Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
【标  题】:用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
【关键字】:
【来  源】:http://blog.csdn.net/Micro_lee/archive/2007/01/02/1472120.aspx

用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出

Your Ad Here /*_############################################################################
  _##
  _##  用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
  _##  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 ]; \
         }                                                  
         
             


 
一个使用泛型堆栈模块创建的两个容纳不同类型数据的实例:【上一篇】
关于java中http上传组件Upload的使用:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • MapEasy答疑(四) 缩放级别level与请求地图数据图片尺寸的关系
  • “梵高。向日葵”为什么值3亿
  • 短信
  • 在jsp页面间传递参数
  • VB的字符串缓冲类,为了回答一个问题匆忙写的,HoHo
  • Linux开发中最最常用的命令
  • 关于SQL SERVER建立索引需要注意的问题
  • CorelDRAW 基础卡通系列
  • Oracle SQL的优化(1)
  • PS制作高精度太空图(1)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.