Binary search tree insertion in c -


insert operation not happening bst.can cause?-1 null element in array. linked list not code.

void insert(int *tree,int element) {     int temp=0;/* first subscript*/      if(tree[temp]==-1){          tree[temp]=element;         return;     }      while(1){         if((tree[temp]>element))             if (tree[2*temp+1]==-1){                 tree[2*temp+1]==element;                 break;             }             else                 temp=2*temp+1;              else if(tree[2*temp+2]==-1){                 tree[2*temp+2]==element;                 break;             }              else                 temp=2*temp+2;     } } 

fixing indentation, adding braces, , replacing == used assignment (should =), code works ok-ish. still add check make sure don't exceed size of tree...

#include <stdio.h>  void insert(int *tree,int element) {     int temp=0;/* first subscript*/      if(tree[temp]==-1){          tree[temp]=element;         return;     }      while(1)     {         if((tree[temp]>element))         {           if (tree[2*temp+1]==-1)           {             tree[2*temp+1]=element;             break;           }           else           {             temp=2*temp+1;           }         }         else         {           if(tree[2*temp+2]==-1)           {             tree[2*temp+2]=element;             break;           }           else           {             temp=2*temp+2;           }         }     } }  int main(void) {   int tree[100];   int ii;   for(ii=0;ii<100;ii++) tree[ii]=-1;   insert(tree, 5);   insert(tree, 3);   insert(tree, 9);   insert(tree, 4);   for(ii=0; ii<10; ii++) printf("%d: %d\n", ii, tree[ii]); } 

whether produces tree looking cannot guess.


Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -