#FIG 3.2 Landscape Center Inches A4 100.00 Single -2 1200 2 6 1200 5475 9150 8475 4 0 0 100 0 14 18 0.0000 4 255 7920 1200 5700 /* return a true value iff the stack is empty */\001 4 0 0 100 0 14 18 0.0000 4 255 6765 1200 6600 /* push an element on top of the stack */\001 4 0 0 100 0 14 18 0.0000 4 240 5280 1200 7800 extern void *stack_pop(stack s);\001 4 0 0 100 0 14 18 0.0000 4 240 7755 1200 6900 extern void stack_push(stack s, void *element);\001 4 0 0 100 0 14 18 0.0000 4 210 990 1200 8400 #endif\001 4 0 0 100 0 14 18 0.0000 4 240 5280 1200 6000 extern int stack_empty(stack s);\001 -6 2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5 12900 9300 12900 300 300 300 300 9300 12900 9300 2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 3 900 9000 900 1500 12300 1500 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 4950 1725 4575 2025 3750 2325 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 4875 1650 4275 1725 3825 1950 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 4875 2325 4125 2700 3375 2925 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 6450 2925 6150 3150 5850 3225 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 6150 3525 5400 3525 4350 3675 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 6750 3975 6225 3825 5850 3975 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 6525 4350 3750 4575 2025 4275 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 2850 8850 1950 8850 1650 8475 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 8025 8025 4875 8400 2850 7875 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 4 0 0 1.00 60.00 120.00 12000 7650 10950 7350 8325 7125 7050 6975 0.000 -1.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 8700 6450 8325 6525 8100 6675 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 8700 6375 7200 6375 6000 6075 0.000 -1.000 0.000 3 2 0 1 0 7 100 0 -1 0.000 0 1 0 3 0 0 1.00 60.00 120.00 9150 5175 4425 5250 2625 5475 0.000 -1.000 0.000 4 1 0 0 0 18 24 0.0000 4 360 3720 6600 900 Modularit\351 (exemple)\001 4 0 0 100 0 14 18 0.0000 4 180 1155 900 1425 stack.h\001 4 0 0 100 0 14 18 0.0000 4 255 2475 1200 2100 #ifndef STACK_H\001 4 0 0 100 0 14 18 0.0000 4 255 2475 1200 2400 #define STACK_H\001 4 0 0 100 0 14 18 0.0000 4 240 4620 1200 3300 typedef struct stack *stack;\001 4 0 0 100 0 14 18 0.0000 4 225 2145 1200 3000 struct stack;\001 4 0 0 100 0 14 18 0.0000 4 240 5280 1200 4200 extern stack stack_create(void);\001 4 0 0 100 0 14 18 0.0000 4 255 4455 1200 3900 /* create an empty stack */\001 4 0 0 100 0 18 18 0.0000 4 270 7515 5100 1800 \351viter plusieurs inclusions du fichier dans un programme\001 4 0 0 100 0 18 18 0.0000 4 270 7350 5100 2400 il y a une struct stack, mais on ne connait pas les d\351tails\001 4 0 0 100 0 18 18 0.0000 4 270 5640 6600 3000 le type principal manipul\351 sera un pointeur\001 4 0 0 100 0 18 18 0.0000 4 270 6105 6300 3600 expliquer le protocole avec des commentaires\001 4 0 0 100 0 18 18 0.0000 4 270 4050 6825 4050 pour indiquer z\351ro param\350tres\001 4 0 0 100 0 18 18 0.0000 4 270 3900 6600 4425 expliciter que c'est l'interface\001 4 0 0 100 0 18 18 0.0000 4 210 2865 9300 5250 utilisation de la forme\001 4 0 0 100 0 18 18 0.0000 4 270 2610 9300 5625 imp\351rative du verbe\001 4 0 0 100 0 18 18 0.0000 4 270 3360 9300 6000 pour avoir moins de texte\001 4 0 0 100 0 18 18 0.0000 4 270 7515 3000 8925 \351viter plusieurs inclusions du fichier dans un programme\001 4 0 0 100 0 14 18 0.0000 4 255 7260 1200 4800 /* destroy a (not necessarily empy) stack */\001 4 0 0 100 0 14 18 0.0000 4 240 5775 1200 5100 extern void stack_destroy(stack s);\001 4 0 0 100 0 14 18 0.0000 4 255 8580 1200 7500 /* pop the top element of the stack and return it */\001 4 0 0 100 0 18 18 0.0000 4 270 4350 8100 7950 utilisation du pointeur g\351n\351rique\001 4 0 0 100 0 18 18 0.0000 4 270 2370 8100 8325 pour les \351l\351ments\001 4 0 0 100 0 18 18 0.0000 4 270 3930 8775 6525 mettre le nom des param\350tres\001