void preorder(tree *node)
{
do
{
while(node != NULL)
{
printf("%d ", node -> data) ;
if(node -> right != NULL)
top = push( top , node -> right) ;
node = node -> left ;
}
if(top != NULL)
{
node = top -> ptr ;
top = pop( top ) ;
}
}while(top != NULL || node != NULL) ;
}
在上面的代码块中,内部while循环中的终止条件是外部do-while循环的子部分。那么,当内部while循环终止时,外循环是否会终止?
答案 0 :(得分:3)
否则当内环结束时,它将控制交给外环。外循环在当前迭代中执行剩余任务,并开始下一次迭代或根据应用的条件终止。内循环条件不会影响外循环。
答案 1 :(得分:0)
内部循环终止后,如果top为NULL(如果未输入块),则退出外部循环。否则,它取决于if块中的赋值。
所以在你的情况下,内部循环的终止并不意味着终止外循环。