private static void yeniIlanEkle(ArrayList kategorilerArrayList) { string sirketAdi, kategoriAdi; Ilan yeniIlan = new Ilan(); Console.WriteLine("\nLutfen ilan kategorisini giriniz:"); kategoriAdi = kategoriSec(kategorilerArrayList); Console.WriteLine("Lutfen sirket adi giriniz:"); sirketAdi = Console.ReadLine(); yeniIlan.sirketAdi = sirketAdi; Console.WriteLine("Lutfen is tanimini giriniz:"); yeniIlan.isTanimi = Console.ReadLine(); Console.WriteLine("Lutfen yetenek ve uzmanliklari giriniz:"); yeniIlan.yetenek = Console.ReadLine(); Console.WriteLine("Lutfen aday tanimini giriniz:"); yeniIlan.adayTanimi = Console.ReadLine(); Console.WriteLine("Lutfen pozisyon bilgilerini giriniz:"); yeniIlan.pozisyonBilgileri = Console.ReadLine(); Console.WriteLine("Lutfen ucreti giriniz:"); // Ilani veren sirket daha onceden ilan verdiyse ayni sirkete ilan bilgileri eklenir, yoksa yeni bir dugum olusturulur. yeniIlan.ucret = int.Parse(Console.ReadLine()); foreach (Kategori o in kategorilerArrayList) { if (string.Compare(kategoriAdi, o.kategoriAdi, true) == 0) { if (o.agac.bul(o.agac.getRoot(), sirketAdi) == 1) { o.agac.bul2(o.agac.getRoot(), sirketAdi).sirketNode.ilanlar.Add(yeniIlan); } else if (o.agac.bul(o.agac.getRoot(), sirketAdi) != 1) { Sirket yeniSirket = new Sirket(); yeniSirket.sirketAdi = sirketAdi; yeniSirket.ilanlar.Add(yeniIlan); o.agac.insert(yeniSirket); } } } for (int i = 0; i < kategorilerArrayList.Count; i++) { ((Kategori)kategorilerArrayList[i]).agac.dugumleriDiziyeTasi(((Kategori)kategorilerArrayList[i]).agac.getRoot()); TreeNode[] yeniDugumler = ((Kategori)kategorilerArrayList[i]).agac.dugumlerDizi; if (((Kategori)kategorilerArrayList[i]).agac.dugumSayisiBul(((Kategori)kategorilerArrayList[i]).agac.getRoot()) == 0) { continue; } Tree yeniAgac = new Tree(); yeniAgac.balanceRecursive(0, ((Kategori)kategorilerArrayList[i]).agac.dugumlerDizi.Length, yeniDugumler); ((Kategori)kategorilerArrayList[i]).agac = yeniAgac; } Console.WriteLine("\nIlan eklendi."); }
private static void baslangicKategoriOlustur(ArrayList kategorilerArrayList) { StreamReader dosyaOku; Sirket yeniSirket; Ilan yeniIlan; TreeNode node = new TreeNode(); string yazi, kategoriAdi, sirketAdi; int ilanSayisi = 6; string[] baslangictakiKategoriler = { "Yazilim Muhendisi", "Ag Yoneticisi", "Veritabani Yoneticisi", "Mobil Yazilim Gelistirme Uzmani", "Backend Developer", "Web Developer" }; for (int i = 0; i < baslangictakiKategoriler.Length; i++) { Kategori kategori = new Kategori(baslangictakiKategoriler[i]); kategorilerArrayList.Add(kategori); } dosyaOku = File.OpenText("C:/Users/Pc/Desktop/Veriler.dat"); yazi = dosyaOku.ReadLine(); for (int i = 1; i <= ilanSayisi; i++) { yeniSirket = new Sirket(); yeniIlan = new Ilan(); // Programda ornek olarak kullanilacak olan veriler dosyadan okunur. kategoriAdi = yazi; yazi = dosyaOku.ReadLine(); yeniSirket.sirketAdi = yazi; yeniIlan.sirketAdi = yazi; sirketAdi = yazi; yazi = dosyaOku.ReadLine(); yeniIlan.isTanimi = yazi; yazi = dosyaOku.ReadLine(); yeniIlan.yetenek = yazi; yeniIlan.yetenek = yeniIlan.yetenek.Insert(yeniIlan.yetenek.Length, " "); yazi = dosyaOku.ReadLine(); yeniIlan.adayTanimi = yazi; yazi = dosyaOku.ReadLine(); yeniIlan.pozisyonBilgileri = yazi; yazi = dosyaOku.ReadLine(); yeniIlan.ucret = Convert.ToInt32(yazi); yazi = dosyaOku.ReadLine(); if (i != 6) { yeniSirket.ilanlar.Add(yeniIlan); } foreach (Kategori o in kategorilerArrayList) { if (string.Compare(kategoriAdi, o.kategoriAdi, true) == 0) { if (i != 6) { o.agac.insert(yeniSirket); } } } if (i == 6) { ((Kategori)kategorilerArrayList[0]).agac.bul2(((Kategori)kategorilerArrayList[0]).agac.getRoot(), sirketAdi).sirketNode.ilanlar.Add(yeniIlan); } } dosyaOku.Close(); }
public void insert(Sirket yeniSirket) { TreeNode newNode = new TreeNode(); newNode.sirketNode = yeniSirket; if (root == null) { root = newNode; } else { TreeNode current = root; TreeNode parent; while (true) { parent = current; if (string.Compare(yeniSirket.sirketAdi, current.sirketNode.sirketAdi, true) == -1) { current = current.leftChild; if (current == null) { parent.leftChild = newNode; return; } } else { current = current.rightChild; if (current == null) { parent.rightChild = newNode; return; } } } } }