전위검사에서 return 문이 안먹히는상황입니다. 도와주세요
하련솔
질문 제목 :전위검사에서 return 문이 안먹히는상황입니다. 도와주세요
질문 내용 : 어제 전위검사(preorder)에 대해서 질문했는데 코딩도중 이해가 안되는부분이 생겨서 다시 질문합니다.
void preorder(struct node *pre)
{
if(pre!=null)
{
printf( %c ,pre-data);
preorder(pre-llink);
preorder(pre-rlink);
}
}이렇게하면 수다님께서 친히 답변해주셔서 동작원리는 다 이해했습니다.특정노드에 a란 값이 저장되어있고 만약노드 검사시 도중에 a란값이 저장되어 있는 노드를 발견하면 return문을통해 재귀함수를
탈출하고싶은데 return문이 안먹히고 있습니다.
voidpreorder(structnode*pre,charinput)
{
inti;
if(pre-llink!=null)
{
tree_tmp[idx]=0;
idx++;
preorder(pre-llink,input);
}
if(pre-rlink!=null)
{
tree_tmp[idx]=1;
idx++;
preorder 10pt;(pre-rlink,input);
}
if(pre-llink==null&&pre-rlink==null)
{
if(pre-data==input)return0;else
{
for(i=0;itmp;i++)
{
idx--;
tree_tmp[idx]=-1;
}
tmp++;
}
}
}
도중에 if(pre-llink==null&&pre-rlink==null){
if(pre-data==input)return0;
에서 pre-data와 input(대문자a)와 같으면 return문으로 함수를 탈출하고싶은데 먹히지않고있습니다.
뭐가문제일까요