c语言编程之栈(数组实现)

  用数组实现的顺序栈,完成了出栈入栈功能。

  1 #include"stdio.h"
  2 typedef int element;
  3 #define  max    100
  4 typedef struct Stack{
  5         element data[max];
  6         element bottom;
  7         element top;
  8 }stack,*pStack;
  9 
 10 //push data into the stack
 11 element push(pStack P,element num)
 12         {
 13            int i=0;
 14            if(P->top==P->bottom)
 15                 {
 16                   printf("stack is empty\n");
 17                   return 0;
 18                 }
 19            ++(P->top);
 20            P->data[P->top]=num;
 21            printf("p->top:%d\n",P->top);
 22         }
 23 
 24 //pop data out of the stack
 25 element pop(pStack P)
 26         {
 27           if(P->top==P->bottom)
 28                 {
 29                   printf("stack is empty\n");
 30                   return 0;
 31                 }
 32           printf("pop num position:%d pop num :%d\n",P->top,P->data[P->top]);
 33           P->top--;
 34           return 0;
 35         }
 36 
 37 //init a stack
 38 element Init_stack(pStack P,element num)
 39         {
 40            int i=0;
 41            P->top=-1;
 42            P->bottom=0;
 43            for(;i<num;i++)
 44                 {
 45                  P->data[i]=i;
 46                  ++(P->top);
 47                  printf("data:%d\n",P->data[i]);
 48                 }
 49            printf("init stack is finished\n");
 50            return 0;
 51         }
 52 //clear a stack
 53 element Clear_stack()
 54         {
 55 
 56         }
 57 //get a data from top stack
 58 element Get_topdata()
 59         {
 60 
 61         }
 62 //delet a stack
 63 element Delet_stack()
 64         {
 65 
 66         }
 67 //print stack's data
 68 element Print_stack(pStack P)
 69         {
 70            int num=0;
 71            num=P->top;
 72            while(num>=(P->bottom))
 73              {
 74                printf("stacknum:%d\n",P->data[num]);
 75                --num;
 76              }
 77         }
 78 element main()
 79         {
 80           pStack P;
 81           element *numb=0;
 82           P=(pStack)malloc(sizeof(struct Stack));
 83           Init_stack(P,20);
 84           push(P,66);
 85           push(P,30);
 86           push(P,50);
 87           push(P,70);
 88           //push(P,80);
 89           Print_stack(P);
 90           pop(P);
 91           pop(P);
 92           Print_stack(P);
 93           return 0;
 94         }

 

posted on 2016-08-18 15:17  FREEH  阅读(1179)  评论(0编辑  收藏  举报