#include #include #include enum{ MAX = 200000, }; typedef struct Bst Bst; struct Bst{ int v; Bst *menor; Bst *maior; }; Biobuf b; Bst* pbst(Bst *t) { if(t->menor != 0) t->menor = pbst(t->menor); Bprint(&b, "%d - ", t->v); if(t->maior != 0) t->maior = pbst(t->maior); return t; } Bst* bstini(int v) { Bst *t; t = malloc(sizeof *t); t->v = v; t->maior = 0; t->menor = 0; return t; } Bst * bstadd(int v, Bst *t) { if(t == 0) t = bstini(v); else if(v >= t->v) t->maior = bstadd(v, t->maior); else t->menor = bstadd(v, t->menor); return t; } void main(void) { Bst *t; int i; Binit(&b, 1, OWRITE); t = 0; srand(time(0)); for(i = 0; i < MAX; i++) t = bstadd(rand()%1000, t); t = pbst(t); exits(""); }