//DLR traverse tree static BiTree<string> CreateBiTree() { Node<string> a = new Node<string>("A"); Node<string> b = new Node<string>("B"); Node<string> c = new Node<string>("C"); Node<string> e = new Node<string>("E"); Node<string> d = new Node<string>("D"); Node<string> f = new Node<string>("F"); Node<string> g = new Node<string>("G"); Node<string> h = new Node<string>("H"); Node<string> i = new Node<string>("I"); Node<string> j = new Node<string>("J"); a.LChild = b; a.RChild = c; b.LChild = d; b.RChild = e; c.LChild = f; c.RChild = g; d.LChild = h; d.RChild = i; e.LChild = j; BiTree<string> bTree =new BiTree<string>(a); //Console.wr return bTree; }
public void If_Five_Elements_Inserted_Into_BiTree_In_Alphabetic_Order() { StudentTest st1 = new StudentTest { FirstName = "Артем", LastName = "Зозуля", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 82 }; StudentTest st2 = new StudentTest { FirstName = "Семен", LastName = "Кириллов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 71 }; StudentTest st3 = new StudentTest { FirstName = "Игорь", LastName = "Маликов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 78 }; StudentTest st4 = new StudentTest { FirstName = "Виталий", LastName = "Таськов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 74 }; StudentTest st5 = new StudentTest { FirstName = "Семен", LastName = "Доброштан", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 84 }; BiTree<StudentTest> tree = new BiTree<StudentTest>(); StudentTest[] studentsArray = new StudentTest[5]; int count = 0; tree.Insert(st1); tree.Insert(st2); tree.Insert(st3); tree.Insert(st4); tree.Insert(st5); foreach (var student in tree) { studentsArray[count] = student; count++; } for (int i = 0; i < studentsArray.Length-1; i++) { Assert.IsTrue((studentsArray[i+1].CompareTo(studentsArray[i])>=0),"Elements not in alphabetic order. Method result: " + studentsArray[i + 1].LastName + " >= " + studentsArray[i].LastName); } }
static void Main(string[] args) { Program prog = new Program(); /*BiTree<int> tree3 = new BiTree<int>(); tree3.Insert(6);*/ StudentTest st1 = new StudentTest { FirstName = "Артем", LastName = "Зозуля", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 82 }; StudentTest st2 = new StudentTest { FirstName = "Семен", LastName = "Кириллов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 71 }; StudentTest st3 = new StudentTest { FirstName = "Игорь", LastName = "Маликов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 78 }; StudentTest st4 = new StudentTest { FirstName = "Виталий", LastName = "Таськов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 74 }; StudentTest st5 = new StudentTest { FirstName = "Семен", LastName = "Доброштан", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 84 }; //BiTree<StudentTest> tree = new BiTree<StudentTest>(new StudentTestByTestTitleComparator()); BiTree<StudentTest> tree = new BiTree<StudentTest>(); tree.ItemRemoved += prog.Tree_ItemRemoved; tree.Insert(st1); tree.Insert(st2); tree.Insert(st3); tree.Insert(st4); tree.Insert(st5); foreach (var item in tree) { Console.WriteLine(item.LastName); } Console.WriteLine("Дерево содержит элементов: " + tree.GetTreeCount); Console.WriteLine("-----------------"); tree.Remove(st2); Console.WriteLine("-----------------"); foreach (var item in tree) { Console.WriteLine(item.LastName); } Console.WriteLine("Дерево содержит элементов: " + tree.GetTreeCount); try { BiTree<int> tree2 = new BiTree<int>(); Console.WriteLine("Value type поиск-----------------"); Console.WriteLine(tree2.Search(2)); tree2.Insert(2); Console.WriteLine("Value type поиск-----------------"); Console.WriteLine(tree2.Search(2).GetValue); tree2.Insert(12); tree2.Insert(8); tree2.Insert(15); tree2.Insert(4); Console.WriteLine("Value type -----------------"); foreach (var item in tree2) { Console.WriteLine(item); } } catch (NotImplementedException notImplEx) { Console.WriteLine(notImplEx.Message); } Console.ReadKey(); }
public void If_InsertMethod_Increases_BiTree_Count() { StudentTest st1 = new StudentTest { FirstName = "Артем", LastName = "Зозуля", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 82 }; BiTree<StudentTest> tree = new BiTree<StudentTest>(); int expectedCount = 1; tree.Insert(st1); Assert.AreEqual(expectedCount, tree.GetTreeCount); }
public static void Show <T>(BiTree <T> biTree) { Console.WriteLine("Tree now consist of " + biTree.Count + " elements(inorder version):"); foreach (var element in biTree.Inorder()) { Console.Write(element + " "); } Console.WriteLine("\n"); Console.WriteLine("Preoder version of the same tree"); foreach (var element in biTree.Preorder()) { Console.Write(element + " "); } Console.WriteLine("\n"); }
private void Start() { char[] data = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };//这个是我们要存储的数据 BiTree <char> tree = new BiTree <char>(10); for (int i = 0; i < data.Length; i++) { tree.Add(data[i]); } //先序遍历 tree.FirstTraversal(); //中序遍历 tree.MiddleTraversal(); //后序遍历 tree.LastTraversal(); //层级遍历 tree.LastTraversal(); }
static void MenuCilcked() { char[] data = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' }; BiTree <char> tree = new BiTree <char>(10); for (int i = 0; i < data.Length; i++) { tree.Add(data[i]); } tree.FirstTraversal(); Debug.Log("---------------"); tree.MidTraversal(); Debug.Log("---------------"); tree.LastTraversal(); }
public void If_SearchMethod_Searches_Correct_Node() { StudentTest st1 = new StudentTest { FirstName = "Артем", LastName = "Зозуля", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 82 }; StudentTest st2 = new StudentTest { FirstName = "Семен", LastName = "Кириллов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 71 }; StudentTest st3 = new StudentTest { FirstName = "Игорь", LastName = "Маликов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 78 }; StudentTest st4 = new StudentTest { FirstName = "Виталий", LastName = "Таськов", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 74 }; StudentTest st5 = new StudentTest { FirstName = "Семен", LastName = "Доброштан", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 84 }; BiTree<StudentTest> tree = new BiTree<StudentTest>(); tree.Insert(st1); tree.Insert(st2); tree.Insert(st3); tree.Insert(st4); tree.Insert(st5); TreeNode<StudentTest> node = tree.Search(st3); StudentTest expectedSt = node.GetValue; Assert.IsTrue(expectedSt.CompareTo(st3) == 0); }
public void LevelOrderTest() { var tree = new BiTree <int>(1); var new_node = tree.InsertLeft(2, tree.Head); tree.InsertLeft(3, new_node); tree.InsertRight(4, new_node); new_node = tree.InsertRight(5, tree.Head); var node6 = tree.InsertRight(6, new_node); new_node = tree.InsertLeft(7, node6); tree.InsertLeft(8, new_node); new_node = tree.InsertRight(9, node6); tree.InsertRight(10, new_node); foreach (var node in tree.LevelOrder(tree.Head)) { Console.WriteLine(node.Data); } }
static void Main(string[] args) { #region Queue of integers Structure.Queue <int> intQueue = new Queue <int>(new int[] { 1, 2, 3, 4, 5, 2 }); Show(intQueue); Console.WriteLine("Lets add some elements to the queue"); intQueue.Enqueue(10); intQueue.Enqueue(-41); Show(intQueue); Console.WriteLine("Lets remove 3 elements from the queue"); intQueue.Dequeue(); intQueue.Dequeue(); intQueue.Dequeue(); Show(intQueue); Console.WriteLine("First element in the queue is : " + intQueue.Peek()); Console.WriteLine("Lets delete the queue"); intQueue.Clear(); Show(intQueue); #endregion #region Queue of strings Console.WriteLine("\n\nNew Queue of strings: "); Queue <string> stringQueue = new Queue <string>(new[] { "first", "second", "third", "fourth", "fifth" }); Show(stringQueue); Console.WriteLine("Lets add some elements to the queue"); stringQueue.Enqueue("sixth"); stringQueue.Enqueue("seventh"); Show(stringQueue); Console.WriteLine("Lets remove 3 elements from the queue"); stringQueue.Dequeue(); stringQueue.Dequeue(); stringQueue.Dequeue(); Show(stringQueue); Console.WriteLine($"Queue contains sixth : {stringQueue.Contains("sixth")}"); Console.WriteLine($"Queue contains Sixth with defaultcomparer : {stringQueue.Contains("Sixth")}"); Console.WriteLine($"Queue contains Sixth with nonedafaultcomparer : {stringQueue.Contains("Sixth",new NoneDefaultStringComparer())}"); Console.WriteLine("\nFirst element in the queue is : " + stringQueue.Peek()); Console.WriteLine("Lets delete the queue"); stringQueue.Clear(); Show(stringQueue); #endregion #region Set of integers Set <string> intSet = new Set <string>(new[] { "1", "4", "4", "6", "3", "10", "3" }); Show(intSet); Console.WriteLine("Lets add some elements to the set"); intSet.Add("18"); intSet.Add("22"); intSet.Add("1"); Show(intSet); Console.WriteLine("Lets delete some elements from the set"); intSet.Remove("4"); intSet.Remove("10"); Show(intSet); Console.WriteLine("Lets copy our set to another one"); Set <string> newIntSet = intSet.Clone(); Show(newIntSet); Console.WriteLine($"ReferenceEquqls: {ReferenceEquals(intSet,newIntSet)}"); Console.WriteLine($"Are this sets equals ? {intSet.SetEquals(newIntSet)}"); Console.WriteLine("\nLets add some elements to old set"); intSet.Add("100"); Console.WriteLine($"\nIs an old set is a superset of new set? {intSet.IsSupersetOf(newIntSet)}"); Console.WriteLine($"\nIs a new set is a subset of old one? {newIntSet.IsSubsetOf(intSet)}"); Console.WriteLine($"\nAre these 2 set overlapsed? {newIntSet.Overlaps(intSet)}"); Console.WriteLine("\nLets use Symmetric exeptwith and try again"); newIntSet.SymmetricExceptWith(intSet); Console.WriteLine($"Are these 2 set overlapsed? {newIntSet.Overlaps(intSet)}"); intSet.Add("222"); intSet.Add("333"); Console.WriteLine("222 and 333 were added to an old set. And now lets Intersect it with new one"); intSet.IntersectWith(newIntSet); Show(intSet); Console.WriteLine("Lets look at new set exceptwith old one"); newIntSet.ExceptWith(intSet); Show(newIntSet); #endregion #region BiTree Int32 with default and not default comparers Console.WriteLine("Lets create new binary tree<int> with default comparer"); BiTree <int> biTreeInt = new BiTree <int>(new int[] { 10, 15, -7, 7, 14, 3, 2, 1, 22 }); Show(biTreeInt); Console.WriteLine("Tree contains 22: " + biTreeInt.Contains(22) + "\n Tree contains -16:" + biTreeInt.Contains(-16)); Console.WriteLine("Lets remove 3"); biTreeInt.Remove(3); Show(biTreeInt); Console.WriteLine("Lets create new binary trr<int> with logic of compearing int by Math.Abs"); BiTree <int> biTreeInt2 = new BiTree <int>(new int[] { 10, 15, -7, 7, 14, 3, 2, 1, 22 }, NoneDefaultComparisionForIntTree); Show(biTreeInt2); Console.WriteLine("Tree contains 22: " + biTreeInt2.Contains(22) + "\n Tree contains -16:" + biTreeInt2.Contains(-16)); Console.WriteLine("Lets remove 3"); biTreeInt2.Remove(3); Show(biTreeInt2); Console.WriteLine("Lets create new trii but with interface parametr"); BiTree <int> newByTree = new BiTree <int>(new [] { -123, 32, 312, 31, 5, 12, 13, 515 }, new ComparerForByTree()); Show(newByTree); #endregion #region BiTree String with default and nonedefault comparers Console.WriteLine("Lets create a tree of string with default comparer"); BiTree <string> biTreeStrings = new BiTree <string>(new [] { "onde", "two", "three", "four", "five", "six", "seven" }); Show(biTreeStrings); Console.WriteLine("Tree contains onde: " + biTreeStrings.Contains("onde") + "\nTree contains nine" + biTreeStrings.Contains("nine")); Console.WriteLine("Lets remove four"); biTreeStrings.Remove("four"); Show(biTreeStrings); Console.WriteLine("Lets create a tree of string with comparer of lenth of string"); BiTree <string> biTreeStrings2 = new BiTree <string>(new[] { "onde", "two", "three", "four", "five", "six", "seven" }); Show(biTreeStrings2); Console.WriteLine("Tree contains onde: " + biTreeStrings2.Contains("onde") + "\nTree contains nine" + biTreeStrings2.Contains("nine")); Console.WriteLine("Lets remove four"); biTreeStrings.Remove("four"); Show(biTreeStrings2); #endregion > Console.ReadKey(); }
public void Nothing_To_Remove_In_BeTree_If_Try_To_Remove() { StudentTest st1 = new StudentTest { FirstName = "Артем", LastName = "Зозуля", TestTitle = ".NET", TestDate = new DateTime(2016, 9, 25), TestResult = 82 }; BiTree<StudentTest> tree = new BiTree<StudentTest>(); tree.Remove(st1); }