Generic Binary Tree : Generic Tree : Generics C# Source Code


Custom Search

C# Source Code » Generics » Generic Tree »

 

Generic Binary Tree








    
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


public class Tree<TItem> where TItem : IComparable<TItem> {
    public Tree(TItem nodeValue) {
        this.NodeData = nodeValue;
        this.LeftTree = null;
        this.RightTree = null;
    }

    public void Insert(TItem newItem) {
        TItem currentNodeValue = this.NodeData;
        if (currentNodeValue.CompareTo(newItem) > 0) {
            if (this.LeftTree == null) {
                this.LeftTree = new Tree<TItem>(newItem);
            } else {
                this.LeftTree.Insert(newItem);
            }
        } else {
            if (this.RightTree == null) {
                this.RightTree = new Tree<TItem>(newItem);
            } else {
                this.RightTree.Insert(newItem);
            }
        }
    }

    public void WalkTree() {
        if (this.LeftTree != null) {
            this.LeftTree.WalkTree();
        }

        Console.WriteLine(this.NodeData.ToString());

        if (this.RightTree != null) {
            this.RightTree.WalkTree();
        }
    }

    public TItem NodeData { get; set; }
    public Tree<TItem> LeftTree { get; set; }
    public Tree<TItem> RightTree { get; set; }
}



class Program {
    static void Main(string[] args) {
        Tree<char> charTree = new Tree<char>('M');
        InsertIntoTree<char>(charTree, 'X', 'A', 'M', 'Z', 'Z', 'N');
        charTree.WalkTree();
    }

    static void InsertIntoTree<T>(Tree<T> tree, params T[] data) where T : IComparable<T> {
        if (data.Length == 0)
            throw new ArgumentException("Must provide at least one data value");

        foreach (T datum in data) {
            tree.Insert(datum);
        }
    }
}

 
    
   
  
   







HTML code for linking to this page:

Follow Navioo On Twitter

C# Source Code

 Navioo Generics
» Generic Tree