zoukankan      html  css  js  c++  java
  • 二叉树的实现

    代码
    /// <summary>
        
    /// 二叉树的应用
        
    /// </summary>
        
    /// <typeparam name="T"></typeparam>
        public class Node<T>
        {
            
    public T m_Item;
            
    public Node<T> m_LeftNode;
            
    public Node<T> m_RightNode;
            
    public Node(T item,Node<T> leftNode,Node<T> rightNode)
            {
                
    this.m_Item = item;
                
    this.m_LeftNode = leftNode;
                
    this.m_RightNode = rightNode;
            }

        }
        
    public class Tree<T>
        {
            Node
    <T> root;
            
    public Tree(Node<T> root)
            {
                
    this.root = root;
            }
            
    public IEnumerable<T> GetEnum
            {
                
    get
                {
                    
    return DisplayTree(root);
                }
            }
            
    public IEnumerable<T> DisplayTree(Node<T> root)
            {
                
    //遍历左子树
                if (root.m_LeftNode != null)
                    
    foreach (T item in DisplayTree(root.m_LeftNode))
                        
    yield return item;
                
    //遍历根节点
                yield return root.m_Item;
                
    //遍历右子树
                if (root.m_RightNode != null)
                    
    foreach (T item in DisplayTree(root.m_RightNode))
                        
    yield return item;
            }
        }
        
    public class CreateTree
        {
            
    public Tree<string> tree;
            
    public CreateTree()
            {
                tree 
    = new Tree<string>(new Node<string>("A",
                      
    new Node<string>("B"nullnull),
                      
    new Node<string>("C",
                        
    new Node<string>("D"nullnull),
                        
    new Node<string>("E"nullnull))));

            }
            
    public  void Display()
            {
               
                
    foreach (string s in tree.GetEnum)
                    Console.WriteLine(s);
            }

        }
  • 相关阅读:
    C++ 动态库导出函数名“乱码”及解决
    ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)
    MVC4 + WebAPI + EasyUI + Knockout-授权代码维护
    关于Grunt可视化的尝试
    Object-c学习之路三(@class与#import的区别)
    2.1 以指定的次序返回查询结果
    进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
    在资源里面画出你的界面
    VS2008下WinRar源码生成dll和 lib总结
    进程占用百分百CPU不卡(从未试过,当别的程序运行的时候,当前程序还会运行吗?)
  • 原文地址:https://www.cnblogs.com/hubcarl/p/1706406.html
Copyright © 2011-2022 走看看