1*76404edcSAsim Jamshed #include <stdio.h>
2*76404edcSAsim Jamshed #include <stdlib.h>
3*76404edcSAsim Jamshed #include "tree.h"
4*76404edcSAsim Jamshed
5*76404edcSAsim Jamshed struct tree {
6*76404edcSAsim Jamshed int id;
7*76404edcSAsim Jamshed TREE_NODE(tree) link;
8*76404edcSAsim Jamshed };
9*76404edcSAsim Jamshed
10*76404edcSAsim Jamshed int
main(int argc,char ** argv)11*76404edcSAsim Jamshed main (int argc, char **argv)
12*76404edcSAsim Jamshed {
13*76404edcSAsim Jamshed struct tree nodes[10];
14*76404edcSAsim Jamshed TREE_SCRATCH(tree, 10) scratch;
15*76404edcSAsim Jamshed int i;
16*76404edcSAsim Jamshed
17*76404edcSAsim Jamshed struct tree *walk;
18*76404edcSAsim Jamshed
19*76404edcSAsim Jamshed for (i = 0; i < 10; i++) {
20*76404edcSAsim Jamshed nodes[i].id = i;
21*76404edcSAsim Jamshed TREE_INIT_NODE(&nodes[i], link);
22*76404edcSAsim Jamshed }
23*76404edcSAsim Jamshed
24*76404edcSAsim Jamshed TREE_INSERT_CHILD(&nodes[0], &nodes[1], link);
25*76404edcSAsim Jamshed TREE_INSERT_CHILD(&nodes[1], &nodes[2], link);
26*76404edcSAsim Jamshed TREE_INSERT_CHILD(&nodes[1], &nodes[3], link);
27*76404edcSAsim Jamshed TREE_INSERT_CHILD(&nodes[2], &nodes[4], link);
28*76404edcSAsim Jamshed TREE_INSERT_CHILD(&nodes[3], &nodes[5], link);
29*76404edcSAsim Jamshed
30*76404edcSAsim Jamshed TREE_DFS_FOREACH(walk, &nodes[0], &scratch, link)
31*76404edcSAsim Jamshed printf("DFS: %d\n", walk->id);
32*76404edcSAsim Jamshed
33*76404edcSAsim Jamshed TREE_BFS_FOREACH(walk, &nodes[0], &scratch, link)
34*76404edcSAsim Jamshed printf("BFS: %d\n", walk->id);
35*76404edcSAsim Jamshed
36*76404edcSAsim Jamshed return 0;
37*76404edcSAsim Jamshed }
38