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
Post a Comment