Beispiel #1
0
 public NodeTree(T inputData)
 {
     data      = inputData;
     RightNode = null;
     LeftNode  = null;
     // niveau =0;
 }
Beispiel #2
0
 private NodeTree <T> findMinFromRight(NodeTree <T> node)
 {
     while (node.LeftNode != null)
     {
         node = node.LeftNode;
     }
     return(node);
 }
Beispiel #3
0
 public void InfixCourse(NodeTree <T> rootNode)
 {
     if (rootNode.LeftNode != null)
     {
         InfixCourse(rootNode.LeftNode);
     }
     Console.WriteLine(rootNode.data);
     if (rootNode.RightNode != null)
     {
         InfixCourse(rootNode.RightNode);
     }
 }
Beispiel #4
0
        public NodeTree <T> Add(NodeTree <T> currentNode, NodeTree <T> newNode)
        {
            if (currentNode == null)
            {
                return(newNode);
            }
            else if (newNode.data.CompareTo(currentNode.data) > 0) //newNode.data > currentNode.data
            {
                currentNode.RightNode = Add(currentNode.RightNode, newNode);
            }
            else if (newNode.data.CompareTo(currentNode.data) < 0)//newNode.data < currentNode.data
            {
                currentNode.LeftNode = Add(currentNode.LeftNode, newNode);
            }

            return(currentNode);
        }
Beispiel #5
0
        public NodeTree <T> Remove(NodeTree <T> node, T element)
        {
            NodeTree <T> cur = node;

            if (cur == null)
            {
                return(cur);
            }
            if (cur.data.CompareTo(element) > 0)
            {
                cur.LeftNode = Remove(cur.LeftNode, element);
            }
            else if (cur.data.CompareTo(element) < 0)
            {
                cur.RightNode = Remove(cur.RightNode, element);
            }
            else
            {
                if (cur.LeftNode == null && cur.RightNode == null)
                {
                    cur = null;
                }
                else if (cur.RightNode == null)
                {
                    cur = cur.LeftNode;
                }
                else if (cur.LeftNode == null)
                {
                    cur = cur.RightNode;
                }
                else
                {
                    NodeTree <T> temp = findMinFromRight(cur.RightNode);
                    cur.data      = temp.data;
                    cur.RightNode = Remove(cur.RightNode, temp.data);
                }
            }
            return(cur);
        }
Beispiel #6
0
 public void Add(T element)
 {
     rootNode = Add(rootNode, new NodeTree <T>(element));
 }
Beispiel #7
0
 public MyBinaryTree()
 {
     rootNode = null;
 }
Beispiel #8
0
 public MyBinaryTree(T rootData)
 {
     rootNode = new NodeTree <T>(rootData);
 }
Beispiel #9
0
 public void Remove(T element)
 {
     rootNode = Remove(rootNode, element);
 }