• 5 二叉树


    1 二叉树的遍历

    1.1 二叉树

    ①每个结点的度都不大于2

    ②每个结点的孩子结点次序不能任意颠倒。

     1 class TreeNode
     2 {
     3     int value;
     4     TreeNode left;
     5     TreeNode right;
     6     public TreeNode(int value)
     7     {
     8         this.value = value;
     9     }
    10 }
    定义

    1.2 宽度优先遍历(分层遍历)

    算法思想:

    1. 队列初始化,队尾插入根结点

    2. 若队列不为空,队头元素出队,访问

    3. 若其左子树或右子树不为空,入队

     1 public static void levelTraversal(TreeNode root)
     2 {
     3     if(root == null)
     4         return;
     5     LinkedList<TreeNode> queue = new LinkedList<TreeNode>();  /* 队列初始化 */
     6     queue.add(root);  /* 根结点入队 */
     7     while(!queue.isEmpty())
     8     {
     9         TreeNode current = queue.remove();
    10         System.out.print(current.value + " ");
    11         if(current.left != null)
    12             queue.add(current.left);
    13         if(current.right != null)
    14             queue.add(current.right);
    15     }
    16 }
    宽度优先遍历

    1.3 深度优先遍历(先序遍历)

    算法思想:

    1. 使用一个辅助栈,将根结点压入栈顶

    2. 若栈不为空,弹出栈顶元素,访问

    3. 将其不为空的右子树和左子树压入栈顶

     1 public static void preOrderTraversal(TreeNode root)
     2 {
     3     if(root == null)
     4         return;
     5     Stack<TreeNode> stack = new Stack<TreeNode>();  /* 辅助栈 */
     6     stack.push(root);
     7     while(!stack.isEmpty())
     8     {
     9         TreeNode current = stack.pop();  /* 栈顶元素出栈 */
    10         System.out.print(current.value + " ");
    11         if(current.right != null)
    12             stack.push(current.right);
    13         if(current.left != null)
    14             stack.push(current.left);
    15     }
    16 }
    深度优先遍历
  • 相关阅读:
    提问的智慧
    Linux下Tomcat的安装配置
    Advanced Puppet 系列的前言
    一个purge参数引发的惨案——从线上hbase数据被删事故说起
    从入门到精通Puppet的实践之路
    Juno Puppet Opertaors Meetup小结
    Openstack配置文件管理的变迁之路
    如何成为一名Top DevOps Engineer
    mod_wsgi的工作模式和配置
    解决PuppetDB Failed to submit 'replace facts'问题
  • 原文地址:https://www.cnblogs.com/sketeton/p/11686638.html
Copyright © 2020-2023  润新知