zoukankan      html  css  js  c++  java
  • 算法与数据结构笔记(二)二叉树遍历

    二叉树的遍历

    前序遍历

    前序遍历(先序遍历)即先访问根节点,再访问左子树,最后访问右子树的顺序

    递归实现前序遍历

    function Preorder(node){
          if(node==NULL){
                return;
          }
          print(node.data);
          Preorder(node.left);
          Preorder(node.right);
    }
    

    由于前序遍历先访问根节点,所以前序遍历又被称为先根遍历。

    中序遍历

    中序遍历即先访问左子树,再访问根节点,最后访问右子树的顺序

    递归实现中序遍历

    function Inorder(node){
          if(node==NULL){
                return;
          }
          
          Inorder(node.left);
          print(node.data);
          Inorder(node.right);
    }
    

    由于中序遍历在中间访问根节点,所以中序遍历又被称为中根遍历。

    后序遍历

    后序遍历即先访问左子树,再访问右子树,最后访问根节点的顺序

    递归实现后序遍历

    function Postorder(node){
          if(node==NULL){
                return;
          }
          
          Postorder(node.left);
          Postorder(node.right);
          print(node.data);
    }
    

    由于后序遍历在最后访问根节点,所以后序遍历又被称为后根遍历。

    层序遍历

    层序遍历即按层访问树的元素。

    迭代+队列是实现层序遍历

    function LineOrder(root,queue){
          queue.put(root):
          while(queue.notEmpty()){
                node = queue.get();
                printf(node.data);
                child = node.children;
                while(child!=NULL){
                      queue.put(child);
                      child = child.next;
                }
                
          }
    }
    
  • 相关阅读:
    Tomcat December 31,2019
    XML
    Java
    mysql8.0.16安装(补) September 24,2019
    乱码中的编码和解码
    idea优化
    新版web.xml
    重定向和请求转发
    web下载文件设置的头信息
    响应状态码
  • 原文地址:https://www.cnblogs.com/semiprimenumber/p/13852591.html
Copyright © 2011-2022 走看看