Trees
#include
#include
#include
// // Trees without pointers... // struct { char data[16]; int left; int right; } list[100]; int length=0; // assume root is 0 void print_tree(int root) { if(root !=-1) { print_tree(list[root].left); puts(list[root].data); print_tree(list[root].right); } } int search(int i,char s[]) { if(i==-1) return 0; // not found if(strcmp(s,list[i].data)<0) return search(list[i].left,s); if(strcmp(s,list[i].data)>0) return search(list[i].right,s); return 1; // found } void newnode(int n, char s[], int side) { if(side==0) list[n].left=length; if(side==1) list[n].right=length; strcpy(list[length].data,s); list[length].right=-1; list[length].left=-1; length++; } void insert(int i,char name[]) { if (strcmp(name,list[i].data) < 0) { if(list[i].left==-1) newnode(i,name,0); else insert(list[i].left,name); } else if (strcmp(name,list[i].data) > 0){ if(list[i].right==-1) newnode(i,name,1); else insert(list[i].right,name); } } void insert_node(char name[]) { if(length == 0) { newnode(0,name,-1); } else insert(0,name); } void main() { int t1; insert_node("Florence"); insert_node("Dougal"); insert_node("Dylan"); insert_node("Zebedee"); insert_node("Mr Rusty"); insert_node("Mr McHenry"); insert_node("Brian"); print_tree(0); t1=search(0,"Brian"); if (!t1) puts("Brian Not Found"); t1=search(0,"Martin"); if (!t1) puts("Martin Not Found"); }