how to interprete this signature..
node=struct node
so every time i see node i need to think as if it was
struct node
but this kind of function signature makes no sense to me :
struct node *what(node *tree)
Code:
typedef struct node node;
struct node{
int value,count;
node *lc,*rc;
};
node *what(node *tree){
node *save,*temp;
int flag;
if(!tree)return NULL;
if(!tree->lc && !tree->rc){
free(tree);
return NULL;
}
save=temp=tree;
if(save->lc) {flag=1;
save=save->lc;
while(save->rc){
flag=0;
temp=save;
save=save->rc;
}
}
else{ flag=0;
save=save->rc;
while(save->lc){
flag=0;
temp=save;
save=save->rc;
}
}
if(!flag)
temp->rc=save->lc;
else
temp->lc=save->rc;
tree->value=save->value;
return tree;
}