Inorder&Postorder&LevelOrder

  递归 迭代
中序遍历 О(n) О(n)
Postorder О(n)  

中序遍历

递归 

if ( !x ) 
    return; //处理递归基
traverse( x->lChild, visit ); //遍历左子树
visit( x->data); //访问根节点
traverse( x->rChild, visit ); //遍历右子树

迭代 

  1. 控制权转交给左孩子;图中的被发现状态和visited状态 
  2. 访问左侧链节点,遍历右子树; 左式堆
  3. 逆序性:最先被访问的是最后被发现的,自下而上;采用后进先出的结构:栈。
  4. 分摊分析

后序遍历

递归

if ( !x )
    return;
traverse( x->lChild, visit );
traverse( x->rChild, visit );
visit( x->data );

 

层次遍历

迭代 

while ( ! Q.empty() ){
    BinNodePosi(T) x = Q.dequeue();
    visit( x->data );
    if ( HasLChild( * x ) )
        Q.enquene( x->lc );
    if ( HasLChild( * x ) )
        Q.enquene( x->rc );
}

 

全部评论

相关推荐

Hyh_111:像这种hr就不用管了,基本没啥实力,换一个吧
点赞 评论 收藏
分享
09-01 10:50
已编辑
东华大学 C++
PDD校招_内推:拼多多意向和开奖一般都比较晚,可能10月11月才出意向
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务