#include "testprint.h" void print_stacks(int h, int nb, ...) { va_list liste; va_start(liste, nb); stack **tab; int i, j, max = 1; MALLOC(tab, nb); for (i = 0; i < nb; i++) { tab[i] = va_arg(liste, stack *); CHECK_NULL(2, tab[i], "The stack", tab[i]->array, "The array used to implement the stack"); } // Récupération de la hauteur maximum parmi les piles. for (i = 0; i < nb; i++) if (tab[i]->size_stack > max) max = tab[i]->size_stack; for (j = h; j > max; j--) { PRINT_BLANK; for (i = 1; i < nb; i++) { PRINT_BLANK; PRINT_BLANK; } printf("\n"); } // Affichage des piles. for (j = max; j > 0; j--) { if (tab[0]->size_stack < j) PRINT_BLANK; else printf("%" xstr(MAX_SIZE_INT_STACK) "d", tab[0]->array[j - 1]); for (i = 1; i < nb; i++) { PRINT_BLANK; if (tab[i]->size_stack < j) PRINT_BLANK; else printf("%" xstr(MAX_SIZE_INT_STACK) "d", tab[i]->array[j - 1]); } printf("\n"); } PRINT_STARS; for (i = 1; i < nb; i++) { PRINT_BLANK; PRINT_STARS; } printf("\n"); free(tab); va_end(liste); } void print_queue(const queue *p) { printf("File:"); if (isempty_queue(p)) { printf(" vide\n"); return; } int i = p->left; if (i < p->right) while (i < p->right) { printf("%4d", p->array[i]); i++; } else { while (i < p->size_array) { printf("%4d", p->array[i]); i++; } i = 0; while (i < p->right) { printf("%4d", p->array[i]); i++; } } printf("\n"); }