xref: /mOS-networking-stack/core/test/tree/test.c (revision 76404edc)
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