Mega Code Archive

 
Categories / C# / Generics
 

Walk through a tree recursively

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<int> tree1 = new Tree<int>(10);         tree1.Insert(5);         tree1.Insert(1);         tree1.Insert(15);         tree1.Insert(-2);         tree1.Insert(115);         tree1.Insert(10);         tree1.Insert(114);         tree1.Insert(-18);         tree1.Insert(1110);         tree1.Insert(81);         tree1.Insert(18);         tree1.WalkTree();         Tree<string> tree2 = new Tree<string>("Hello");         tree2.Insert("A");         tree2.Insert("B");         tree2.Insert("C");         tree2.Insert("D");         tree2.Insert("E");         tree2.Insert("F");         tree2.Insert("G");         tree2.Insert("H");         tree2.Insert("I");         tree2.Insert("J");         tree2.Insert("K");         tree2.WalkTree();     } }