内环的终止条件与外环

时间:2016-12-15 15:48:37

标签: c

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循环终止时,外循环是否会终止?

2 个答案:

答案 0 :(得分:3)

否则当内环结束时,它将控制交给外环。外循环在当前迭代中执行剩余任务,并开始下一次迭代或根据应用的条件终止。内循环条件不会影响外循环。

答案 1 :(得分:0)

内部循环终止后,如果top为NULL(如果未输入块),则退出外部循环。否则,它取决于if块中的赋值。

所以在你的情况下,内部循环的终止并不意味着终止外循环。