Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

deleting node from binary search tree

$
0
0
hi everyOne :clap:

i have this code for deleting node from binary search tree but becouse :stupid: I did not understand the last part Can anyOne explain it to me.
# define Ok 0
# define Error -1 
# define Lchild 1
 # define Rchild 2 
int bt_delete ( struct bt_node * pred , struct bt_node *node , int stat ) 
{ struct bt_node *child; 
if ( node == Null ) 
return ( Error ); 
if ( pred == Null ) 
{ root = node ─> rchild ;
 child = node ─> lchild;
 return ( bt_insert2 ( child ) );
 } 
if ( node ─> lchild == Null && node ─> rchild == Null )
child = Null; 
elseif ( node ─> lchild == Null ) 
child = node ─> rchild ; 
elseif ( node ─> rchild == Null ) 
child = node ─> lchild ; 
elseif ( node ─> lchild ─> rchild == Null )
 { child = node ─> lchild ;
 node ─> lchild ─> rchild = node ─> rchild; } 
elseif ( node ─> rchild ─> lchild == Null )
 { child = node ─> rchild ; 
node ─> rchild ─> lchild = node ─> lchild; }


//this part which i didnt understand
else
 {child = node ─> rchild;
 if ( stat = Lchild ) 
pred ─> lchild = node ─> rchild ;
 else 
pred ─> rchild = node ─> rchild ;
 bt_freenode ( node );
 return ( bt_insert2 ( node ─> lchild ) ) ; } 
if ( stat == Lchild )
 pred ─> lchild = child ; 
else 
pred ─> rchild = child ;
 return ( Ok ); }


Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>