hypercube-0.3.1
[polytopiary:hypercube.git] / test-stack.c
1 /* test stack */
2
3 #include <stdio.h>
4
5 #include "stack.h"
6
7 comparator cmp_ptr;
8
9 int cmp_ptr(void *a, void *b)
10 {
11     int ai, bi;
12     ai = (int) a;
13     bi = (int) b;
14     return (ai - bi);
15 }
16
17 void s_dump(stack *s) {
18     int i;
19     printf("head = %d\n", s->head);
20     for (i = -s_size(s); i < s_size(s); i++) {
21         printf("body[%02d] = %p\n", i, s_at(s, i));
22     }
23 }
24
25 int main(void) {
26     int i;
27     int a[16];
28     stack r, s, t;
29     s_clear(&r);
30     s_clear(&s);
31     s_clear(&t);
32     s_dump(&s);
33     for (i = 0; i < 8; i++) {
34         s_push(&s, &(a[i]));
35         s_push(&t, &(a[i+4]));
36     }
37 /*    s_dump(&s);
38     s_delete(&s, 2);
39     s_delete(&s, -3);*/
40     s_dump(&s);
41     s_reverse(&s);
42     s_dump(&s);
43     s_dump(&t);
44     s_append(&s, &t);
45     s_dump(&t);
46     s_sort(&t, cmp_ptr);
47     s_dump(&t);
48     s_uniq(&t, cmp_ptr);
49     s_dump(&t);
50     return (0);
51 }
52
53 /* EOF */