基本栈c语言的实现

 1 /*初始栈顶为-1,栈满时栈顶指针为MAX_STACK_SIZE-1
 2 */ 
 3 
 4 #include<stdio.h> 
 5 #include<stdlib.h>
 6  
 7 #define MAX_STACK_SIZE 100        /*最大栈元素数*/
 8 typedef struct {
 9     int key  ;                                                        
10 } element;
11 
12 element stack[MAX_STACK_SIZE];
13 
14 bool IsFull(int *top );            
15 void  Add(int *top,element item);
16 bool IsEmpty(int *top );
17 element Delete(int *top);
18 
19 
20 int main()
21 {
22     int i;
23     int top=-1;
24     element j;
25     j.key=0;
26     
27     if(IsEmpty(&top))
28     { 
29         for( i = 0; i<102; i++){
30             if(!IsFull(&top))    
31                 Add(&top,j);    
32             else{ 
33                 printf("栈满
");
34                 break;
35                 } 
36                 j.key++;
37             
38         } 
39     } 
40     while(!IsEmpty(&top))
41         printf("%d 
",Delete(&top).key);
42     if(IsEmpty(&top))    
43         printf("
栈空,已输出全部元素!
");
44     return 0;
45 }
46 
47 
48 bool IsFull(int * top )//1为满0为不满 
49 {
50     if(*top >=MAX_STACK_SIZE-1){
51         return 1;
52     }
53     else{
54         return 0;
55     }
56 }
57 
58 bool IsEmpty(int *top)//1为空  0为不空 
59 {
60     if(*top == -1){
61         return 1;
62     }
63     else{
64         return 0;
65     }
66 } 
67 void  Add(int *top,element item)
68 {
69     if(*top >=MAX_STACK_SIZE-1){
70         printf("栈满"); 
71         return ;
72     }
73     else
74         stack[++(*top)]=item;
75 }
76 element Delete(int *top)
77 {
78     if(*top == -1){
79         printf("栈空");
80     }
81     return stack[(*top)--]; 
82 }
原文地址:https://www.cnblogs.com/hysz/p/7147104.html