Chinaunix首页 | 论坛 | 博客
  • 博客访问: 468468
  • 博文数量: 112
  • 博客积分: 2436
  • 博客等级: 大尉
  • 技术积分: 2769
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-04 19:48
文章分类

全部博文(112)

文章存档

2013年(7)

2012年(105)

分类: C/C++

2012-03-22 14:57:13


点击(此处)折叠或打开

  1. #Makefile

  2. all:
  3.     gcc stack.c -c -o stack.o
  4.     gcc main.c -c -o main.o
  5.     gcc stack.o main.o -o main
  6. clean:
  7.     rm *.o main
  8. .PHONY:clean all

点击(此处)折叠或打开

  1. //stack.h

  2. #ifndef STACK_H
  3. #define STACK_H

  4. #include <stdbool.h>
  5. #define MAX 100
  6. int arr[MAX];
  7. int top = 0;
  8. void push(char);
  9. char pop(void);
  10. bool is_empty(void);
  11. bool is_full(void);

  12. #endif //STACK_H

点击(此处)折叠或打开

  1. //stack.c

  2. #include "stack.h"

  3. void push(char ch)
  4. {
  5.     arr[top++] = ch;
  6. }

  7. char pop(void)
  8. {
  9.     return arr[--top];
  10. }

  11. bool is_empty(void)
  12. {
  13.     return top == 0;
  14. }

  15. bool is_full(void)
  16. {
  17.     return top == 100;
  18. }

点击(此处)折叠或打开

  1. //main.c

  2. #include <stdio.h>
  3. #include "stack.h"

  4. int main(int argc, const char *argv[])
  5. {
  6.     char ch;

  7.     while((ch = getchar()) != '\n')
  8.     {
  9.         if(! is_full())
  10.             push(ch);
  11.     }
  12.     putchar('\n');
  13.     while(! is_empty())
  14.     {
  15.         putchar(pop());
  16.     }


  17.     return 0;
  18. }

阅读(725) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~