zoukankan      html  css  js  c++  java
  • 二叉树遍历:先序、中序、后序和层次遍历

    public class BinaryNode
        
    {
            
    public int Data;
            
    public BinaryNode Left;
            
    public BinaryNode Right;
        }



    public class BinaryTree
        
    {
            
    public void PreOrder(BinaryNode node)
            
    {
                
    if (node != null)
                
    {
                    Console.WriteLine(node.Data);

                    PreOrder(node.Left);
                    PreOrder(node.Right);
                }

            }


            
    public void MidOrder(BinaryNode node)
            
    {
                
    if (node != null)
                
    {
                    MidOrder(node.Left);
                    Console.WriteLine(node.Data);
                    MidOrder(node.Right);
                }

            }


            
    public void AfterOrder(BinaryNode node)
            
    {
                
    if (node != null)
                
    {
                    AfterOrder(node.Left);
                    AfterOrder(node.Right);
                    Console.WriteLine(node.Data);
                }

            }


            
    public void LayerOrder(BinaryNode node)
            
    {
                
    if (node != null)
                
    {
                    CurrentLayer(node.Left);
                    CurrentLayer(node.Right);

                    LayerOrder(node.Left);
                    LayerOrder(node.Right);
                }

            }


            
    private void CurrentLayer(BinaryNode node)
            
    {
                
    if (node != null)
                
    {
                    Console.WriteLine(node.Data);
                }

            }


        }


    测试:
                BinaryNode n1 = new BinaryNode();
                n1.Data 
    = 27;

                BinaryNode n2 
    = new BinaryNode();
                n2.Data 
    = 83;

                BinaryNode n3 
    = new BinaryNode();
                n3.Data 
    = 123;

                BinaryNode n4 
    = new BinaryNode();
                n4.Data 
    = 98;

                BinaryNode n5 
    = new BinaryNode();
                n5.Data 
    = 94;

                BinaryNode n6 
    = new BinaryNode();
                n6.Data 
    = 48;

                BinaryNode n7 
    = new BinaryNode();
                n7.Data 
    = 61;

                n1.Left 
    = n2;
                n1.Right 
    = n3;
                n1.Left.Left 
    = n4;
                n1.Left.Right 
    = n5;
                n1.Right.Right 
    = n6;
                n1.Right.Right.Left 
    = n7;

                BinaryTree bTree 
    = new BinaryTree();

                Console.WriteLine(
    "Pre Order Binary Tree:");
                bTree.PreOrder(n1);

                Console.WriteLine(
    "Midd Order Binary Tree:");
                bTree.MidOrder(n1);

                Console.WriteLine(
    "After Order Binary Tree:");
                bTree.AfterOrder(n1);

                Console.WriteLine(
    "Layer Order Binary Tree:");
                bTree.LayerOrder(n1);

                Console.ReadLine();

  • 相关阅读:
    nginx-consul-template
    安装calico
    安装docker
    etcd集群安装
    安装consul-client+registrator
    command not found 的解决&&解释
    安装consul
    RAC环境下SCAN IP可以PING通,1521端口也可以TELNET,但是无法建立数据库连接
    Error starting daemon: error initializing graphdriver: devmapper: Device docker-thinpool is not a thin pool
    nginx+keepalived高可用
  • 原文地址:https://www.cnblogs.com/silva/p/1091806.html
Copyright © 2011-2022 走看看