can anyone give me links to more educative and active groups like algogeeks
On Sun, May 9, 2010 at 2:11 AM, Arun prasath <aruntendulkar2...@gmail.com> wrote: > This does not create a balanced tree but ensures that every element in the > tree is accessible by lg(n) time. > > Time : Complexity O(n) > > > [a...@91blore-srv1 ~]$ cat recursion.c > #include <stdlib.h> > #include<unistd.h> > #include <stdio.h> > #define TEST2 > #ifdef TEST1 > int arr[] = { 1,2,3,4,5,6,7}; > int max_elems = sizeof(arr)/sizeof(arr[0]); > #endif > > #ifdef TEST2 > int arr[] = { 1,2,3,4,5}; > int max_elems = sizeof(arr)/sizeof(arr[0]); > #endif > > #ifdef TEST3 > int arr[] = { 1,2,3,4,5,6,7,8}; > int max_elems = sizeof(arr)/sizeof(arr[0]); > #endif > > #define LIST_EMPTY -1 > > struct tree { > int data; > struct tree * left,* right; > }; > > struct tree* function( int , int); > void print_inorder( struct tree *); > > int return_next_from_list(void) > { > static int nxt_elem = 0; > if(nxt_elem < max_elems) > return arr[nxt_elem++]; > > return LIST_EMPTY;// empty condition > } > int main() > { > unsigned int x = max_elems; > struct tree* head; > while( x & (x - 1) ) { > x = x & (x - 1) ; > } > > head = function(0, x); > print_inorder(head); > free(head); > return 0; > } > struct tree* function(int mid, int i) > { > int val = mid + i ; > if (val & 1) { > struct tree * leaf = malloc( sizeof(struct tree) ); > leaf->left = leaf->right = NULL; > leaf->data = return_next_from_list(); > if(leaf->data == LIST_EMPTY) { > free(leaf); > return NULL; > } > return leaf; > } > struct tree *non_leaf = malloc( sizeof(struct tree) ) ; > > non_leaf->left = function( mid, i/2); > non_leaf->data = return_next_from_list(); > if (non_leaf->data == LIST_EMPTY) { > struct tree *tmp = non_leaf->left; > free(non_leaf); > return tmp; > } > non_leaf->right = function( mid+i, i/2); > return non_leaf; > } > void print_inorder( struct tree* root) > { > struct tree * trav = root; > if (!trav) { > return; > } > print_inorder(trav->left); > if(trav->left) > free(trav->left); > printf("{%d}", trav->data); > print_inorder(trav->right); > if(trav->right) > free(trav->right); > > } > [a...@91blore-srv1 ~]$ > > > On Sun, May 2, 2010 at 6:38 PM, divya <sweetdivya....@gmail.com> wrote: >> >> u are given a sorted lnked list construct a balanced binary search >> tree from it. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algoge...@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algoge...@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algoge...@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.