宏实现泛型堆栈(静态数组)
来源:互联网 发布:阿里云备案域名介入 编辑:程序博客网 时间:2024/06/14 13:45
---C语言实现
---实现了基本的pop / push / empty / full / top
---(写的过程感觉宏的编译非常的不稳定)
generic_stack.h
#include <assert.h>#define GENERIC_STACK(STACK_TYPE, SUFFIX, STACK_SIZE) \ \static STACK_TYPE stack##SUFFIX[STACK_SIZE]; \static int top_element##SUFFIX = -1; \\int empty##SUFFIX(void) \{ \return top_element##SUFFIX == -1; \ } \ \int full##SUFFIX(void) \{ \return top_element##SUFFIX == STACK_SIZE-1; \} \ \void push##SUFFIX(STACK_TYPE value) \{ \assert(!full##SUFFIX()); \top_element##SUFFIX += 1; \stack##SUFFIX[top_element##SUFFIX] = value; \} \ \void pop##SUFFIX(void) \{ \assert(! empty##SUFFIX()); \top_element##SUFFIX -= 1; \} \\STACK_TYPE top##SUFFIX(void) \{\assert(!empty##SUFFIX());\return stack##SUFFIX[ top_element##SUFFIX ];\}
测试:
generic_stack.c
#include <stdio.h>#include <windows.h>#include "generic_stack.h"GENERIC_STACK(int,_int,10)int main(void){push_int(23);push_int(2);push_int(26);printf("%d\n",top_int());pop_int();printf("%d\n",top_int());system("pause");return 0;}
0 0
- 宏实现泛型堆栈(静态数组)
- 静态数组实现堆栈
- 静态数组实现的堆栈
- 用静态数组实现一个泛型的堆栈,数组的长度当堆栈实例化时作为参数给出
- 经典抽象数据类型之堆栈实现(静态数组)
- 堆栈(数组实现)
- 堆栈之静态数组
- 数组实现堆栈(sbds)
- 用JAVA实现堆栈(数组篇)
- 堆栈的数组实现(完整版)
- 用JAVA实现堆栈(数组篇)
- 用数组实现堆栈
- 动态数组实现堆栈
- 数组实现堆栈
- 堆栈的数组实现
- 堆栈用数组实现
- 数组实现堆栈
- 两个数组实现堆栈
- Angular2学习资源汇总
- VBA代码实例---Msgbox函数及应用实例
- 最长公共子序列LCS
- 勉输密码传输文件case
- fragment的生命周期
- 宏实现泛型堆栈(静态数组)
- 挂载电脑上的硬盘共享文件夹到VM虚拟机中
- 24时区,GMT,UTC,DST,CST时间详解 ISO8601
- (转)IntentService简介
- 浅析Java中的抽样类和接口
- Chrome 中的 JavaScript 断点设置和调试技巧
- 面向对象框架封装思路
- Hdu1874 畅通工程续
- 让history显示时间