15 int cmp(void* x, void* y)
19 if (xx > yy) return 1;
20 if (xx < yy) return -1;
24 void buffer_dump(BUFFORD* b)
28 for (c = bufford_get_min(b); c; c = bufford_get_next(b, c))
33 int main(int argc, char* argv[])
36 BUFFORD* b = bufford_new(sizeof(int) * 8, sizeof(int), &cmp);
38 fp = fopen(argv[1], "r");
41 fscanf(fp, "%i", ®);
43 if (reg == 0) continue;
44 if (!bufford_push(b, ®)) { /* no hay más lugar */
47 printf("No se pudo insertar el valor %i, el buffer está lleno!\n", reg);
51 printf("Debe sacar algún valor: ");
52 scanf("%i", &new_reg);
53 if ((poped = bufford_pop(b, &new_reg))) {
54 printf("Se sacó el valor %i con éxito!\n", *poped);
56 if (!bufford_push(b, ®)) { /* no hay más lugar */
57 printf("Hubo un error FEO!\n");
62 printf("No hay ningún valor menor a %i en el buffer!\n", new_reg);
66 printf("Se insertó el valor %i con éxito!\n", reg);
74 for (c = bufford_pop_min(b); c; c = bufford_pop(b, &x)) {
77 printf("Se sacó el valor %i con éxito!\n", x);