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 }