• 二叉树遍历总结 先序、中序、后续、广度、深度


    遍历的方式有两种,一种是递归遍历,另外一种是非递归遍历

    先序递归

    void PreOrder (BitTree T){

      if(T != NULL){

        cout<< T->val << "   ";

        PreOrder (T->left);

        PreOrder (T->right);

      }

    }

    先序非递归,这里采用栈的数据结构来实现

    void PreOrder (BitTree T){

      stack<BitTree>  s;

      BitTree p = T;

      while(p || !s.empty){

        if(p){

          cout<<p->val<<"  ";

          s.push(p);

          p = p->left;

        }else

        {

          p = s.top();

          p = p->right;

          p = p.pop();

        }

      }

    }

    中序、后续类似

    深度优先遍历就是先序遍历

    广度优先遍历使用队列结构遍历

  • 相关阅读:
    团队个人冲刺day08
    4.26 jQuery AJAX load() 方法
    4.23 jquery
    4.22 AJAX技术
    4.21 正则表达式
    4.20
    4.15 重写团队作业1
    4.12 重写团队作业1
    4.9 团队作业1
    4.7 团队作业1
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10509330.html
Copyright © 2020-2023  润新知