static void Main(string[] args) { int[] datas = { 23, 45, 16, 37, 3, 99, 22 }; var bst = new BST(); //foreach (var data in datas) //{ // bst.BuildBST(data); //} //var bstRoot = bst.Root; var bstRoot = bst.BuildBST(datas); Console.WriteLine("中序遍历:"); bst.InOrder(bstRoot); Console.WriteLine("\r\n先序遍历:"); bst.PreOrder(bstRoot); Console.WriteLine("\r\n后序遍历:"); bst.PostOrder(bstRoot); Console.WriteLine("\r\n最小值:"); Console.Write(bst.FindMin()); Console.WriteLine("\r\n最小值节点:"); Console.Write(bst.FindMinNode()); Console.WriteLine("\r\n最大值:"); Console.Write(bst.FindMax()); Console.WriteLine("\r\n最大值节点:"); Console.Write(bst.FindMaxNode()); Console.WriteLine("\r\n查找指定值:"); Console.Write(bst.FindNode(45)); Console.ReadLine(); }
static void Main(string[] args) { BST bst = new BST(); //Min-Max Değerler, Ataları ve Kardeşleri, Level Order Yazma /* * bst.ekle(20); * bst.levelOrder(); * bst.min(); * bst.max(); * Console.WriteLine(); * * bst.ekle(10); * bst.levelOrder(); * bst.min(); * bst.max(); * Console.WriteLine(); * * bst.ekle(30); * bst.levelOrder(); * bst.min(); * bst.max(); * Console.WriteLine(); * * bst.ekle(5); * bst.ekle(2); * bst.ekle(3); * bst.ekle(1); * bst.ekle(35); * bst.ekle(37); * bst.ekle(36); * bst.ekle(38); * bst.levelOrder(); * bst.min(); * bst.max(); */ //Sadece Kök Düğümü Olan Bir Ağaçtan Olmayan Bir Değer ve Kökü Silme İşlemi /* * bst.ekle(17); * bst.levelOrder(); * Console.WriteLine(); * * bst.silme(8); * bst.silme(17); * bst.levelOrder(); * Console.WriteLine(); */ //Tek Çocuğu Solda Bulunan Kökün Silinmesi /* * bst.ekle(17); * bst.ekle(8); * bst.levelOrder(); * Console.WriteLine(); * * bst.silme(17); * bst.levelOrder(); */ //Tek Çocuğu Sağda Bulunan Kökün Silinmesi /* * bst.ekle(17); * bst.ekle(25); * bst.levelOrder(); * Console.WriteLine(); * * bst.silme(17); * bst.levelOrder(); */ //İki Çocuğu Bulnan Kökün Silinmesi /* * bst.ekle(17); * bst.ekle(8); * bst.ekle(25); * bst.levelOrder(); * Console.WriteLine(); * * bst.silme(17); * bst.levelOrder();*/ bst.ekle(17); bst.ekle(8); bst.ekle(25); bst.ekle(5); bst.ekle(2); bst.ekle(14); bst.ekle(12); bst.ekle(15); bst.ekle(20); bst.ekle(30); bst.ekle(23); bst.ekle(1); bst.levelOrder(); Console.WriteLine(); //Yaprak Düğümün Silinmesi bst.silme(23); bst.levelOrder(); Console.WriteLine(); //Tek Çocuğu Olan Düğümün Silinmesi bst.silme(2); bst.levelOrder(); Console.WriteLine(); //İki Çocuğu Olan Düğümün Silinmesi bst.silme(8); bst.levelOrder(); Console.WriteLine(); }