zoukankan      html  css  js  c++  java
  • C#实现二叉树外带中序遍历(转载)

  • using System;
  • namespace BinaryTree
  • {
  •     // Binary Tree的结点类
  •     class Node
  •     {
  •         public int Data { getset; }
  •         public Node LeftSubNode { getset; }
  •         public Node RightSubNode { getset; }
  •         // 结点为自己追加子结点(与向左/向右追加结点,形成递归)
  •         public void Append(Node subNode)
  •         {
  •             if (subNode.Data <= this.Data)
  •             {
  •                 this.AppendLeft(subNode);
  •             }
  •             else
  •             {
  •                 this.AppendRight(subNode);
  •             }
  •         }
  •         // 向左追加
  •         public void AppendLeft(Node subNode)
  •         {
  •             if (this.LeftSubNode == null)
  •             {
  •                 this.LeftSubNode = subNode;
  •             }
  •             else
  •             {
  •                 this.LeftSubNode.Append(subNode);
  •             }
  •         }
  •         // 向右追加
  •         public void AppendRight(Node subNode)
  •         {
  •             if (this.RightSubNode == null)
  •             {
  •                 this.RightSubNode = subNode;
  •             }
  •             else
  •             {
  •                 this.RightSubNode.Append(subNode);
  •             }
  •         }
  •         // 结点显示自己的数据
  •         public void ShowData()
  •         {
  •             Console.WriteLine("Data={0}"this.Data);
  •         }
  •     }
  •     // BinaryTree类
  •     class Tree
  •     {
  •         // 根结点
  •         public Node Root { getset; }
  •         // 以根结点为起点,插入结点
  •         public void Insert(Node newNode)
  •         {
  •             if (this.Root == null)
  •             {
  •                 this.Root = newNode;
  •             }
  •             else
  •             {
  •                 this.Root.Append(newNode);
  •             }
  •         }
  •         // 重载,默认以根结点为起点遍历
  •         public void MidTravel()
  •         {
  •             this.MidTravel(this.Root);
  •         }
  •         
  •         // 中序遍历(递归)
  •         public void MidTravel(Node node)
  •         {
  •             if (node.LeftSubNode != null)
  •             {
  •                 this.MidTravel(node.LeftSubNode);
  •             }
  •             node.ShowData();
  •             if (node.RightSubNode != null)
  •             {
  •                 this.MidTravel(node.RightSubNode);
  •             }
  •         }
  •     }
  •     class Program
  •     {
  •         static void Main(string[] args)
  •         {
  •             Tree tree = new Tree();
  •             
  •             tree.Insert(new Node { Data = 3 });
  •             tree.Insert(new Node { Data = 6 });
  •             tree.Insert(new Node { Data = 2 });
  •             tree.Insert(new Node { Data = 7 });
  •             tree.Insert(new Node { Data = 18 });
  •             
  •             tree.MidTravel();
  •         }
  •     }
  • }
查看全文
  • 相关阅读:
    盒子垂直水平居中
    Sahi (2) —— https/SSL配置(102 Tutorial)
    Sahi (1) —— 快速入门(101 Tutorial)
    组织分析(1)——介绍
    Java Servlet (1) —— Filter过滤请求与响应
    CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
    JBoss Wildfly (1) —— 7.2.0.Final编译
    CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)
    CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
    CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
  • 原文地址:https://www.cnblogs.com/guoxiaowen/p/1262571.html
  • Copyright © 2011-2022 走看看