• 数据结构之二叉树


    二叉树的实现:

    public class Node<T>
        {
            T date;
    
            public T Date
            {
                get { return date; }
                set { date = value; }
            }
            Node<T> lChild;
    
            public Node<T> LChild
            {
                get { return lChild; }
                set { lChild = value; }
            }
            Node<T> rChild;
    
            public Node<T> RChild
            {
                get { return rChild; }
                set { rChild = value; }
            }
    
            public Node(T value)
            {
                date = value;
                lChild = null;
                rChild = null;
            }
    
            public Node()
            {
                date = default(T);
                lChild = null;
                rChild = null;
            }
    
            public Node(Node<T> lc, Node<T> rc)
            {
                date = default(T);
                lChild = lc;
                rChild = rc;
            }
        }
    
        public class BinaryTree<T>
        {
            Node<T> head;
    
            public Node<T> Head
            {
                get { return head; }
                set { head = value; }
            }
    
            public BinaryTree()
            {
                head = null;
            }
    
            public bool IsEmpty()
            {
                if (head == null)
                {
                    return true;
                }
                else
                {
                  return  false;
                }
            }
    
            public Node<T> GetLeftChild(Node<T> p)
            {
                if (p != null)
                {
                    return p.LChild;
                }
                else
                {
                    return null;
                }
            }
    
            public Node<T> GetRightChild(Node<T> p)
            {
                if (p != null)
                {
                    return p.RChild;
                }
                else
                {
                    return null;
                }
            }
    
            public BinaryTree(T value)
            {
                Node<T> root = new Node<T>(value);
                head = root;
            }
    
            public void InsertL(T value, Node<T> p)
            {
                Node<T> newNode = new Node<T>(value);
                newNode.LChild = p.LChild;
                p.LChild = newNode;
            }
    
            public void InsertR(T value, Node<T> p)
            {
                Node<T> newNode = new Node<T>(value);
                newNode.RChild = p.RChild;
                p.RChild = newNode;
            }
    
            public Node<T> DeleteLeftChild(Node<T> p)
            {
                if (p == null)
                {
                    return null;
                }
    
                Node<T> temp = null;
                if (p != null && p.LChild != null) 
                {
                    temp = p.LChild;
                }
    
                p.LChild = null;
                return temp;
            }
    
            public Node<T> DeleteRightChild(Node<T> p)
            {
                if (p == null)
                {
                    return null;
                }
    
                Node<T> temp = null;
                if (p != null && p.RChild != null)
                {
                    temp = p.RChild;
                }
    
                p.RChild = null;
                return temp;
            }
    
            public bool IsLeftNode(Node<T> p)
            {
                if (p != null &&
                    p.LChild == null
                    && p.RChild == null)
                {
                    return true;
                }
    
                return false;
            }
        }
  • 相关阅读:
    编写安全代码:小心使用浮点数
    编写安全代码:有符号数和无符号数的移位区别右移
    封装了 C# 矩阵计算类CMarix
    几种位操作办法
    百度地图 鼠标绘制图形判 重叠 相交 demo
    eclipse 鼠标变成十字
    五(一)、spring 声明式事务注解配置
    eclipse创建Dynamic Web Project时忘记选中生成web.xml
    tomcat 请求地址去掉项目名称方法
    mybatis java类型和 jdbc类型 对应关系
  • 原文地址:https://www.cnblogs.com/Jessy/p/3491882.html
Copyright © 2020-2023  润新知