NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Asd
1.soru binary tree kodlamaları 2 tane.
1.si:
using System;

//Node isminde nesne oluşturduk
public class Node
{
//Node kendi içindeki ve sağında solunda olabilecek yeni Node'ları barındırıyor
public int head;
public Node sol;
public Node sag;

//Node'un yaprakları olmayabilir. Bunun için constructer oluşturdum.
public Node(int head)
{
this.head=head;
}

//Node'un tek yaprağı olabilir. Bunun için constructer oluşturdum.
public Node(int head,int sol)
{
this.head=head;
//Sol node için yeni Node tanımlayıp head değerini atadık.
var n = new Node(sol);
this.sol=n;
}

//Node'un iki yaprağı olabilir. Bunun için constructer oluşturdum.
public Node(int head,int sol,int sag)
{
this.head=head;
//Sol node için yeni Node tanımlayıp head değerini atadık.
var n_sol = new Node(sol);
//Sağ node için yeni Node tanımlayıp head değerini atadık.
var n_sag = new Node(sag);
this.sol=n_sol;
this.sag=n_sag;
}
}

public class Program
{
public static void Main()
{
//Ağacımızı en tepeden oluşturmaya başladık. Head değerine göre değişken atıyorum ki karışmasın diye.
var node5 = new Node(5,3,6);
//node5'in sol yaprağı 3 için node3'ü tanımladık.Solda 1 sağda 2 değerli yaprakları var.
var node3 = new Node(3,1,2);
//node6'in sol yaprağında 4 değeri var.
var node6 = new Node(6,4);

Console.WriteLine("node5 head= " + node5.head);
Console.WriteLine("node5 sol= " + node5.sol.head);
Console.WriteLine("node5 sag= " + node5.sag.head);

Console.WriteLine("node3 head= " + node3.head);
Console.WriteLine("node3 sol= " + node3.sol.head);
Console.WriteLine("node3 sag= " + node3.sag.head);

Console.WriteLine("node6 head= " + node6.head);
Console.WriteLine("node6 sol= " + node6.sol.head);
}
}
2.si:
using System;

//Burada yine Node isminde nesne oluşturduk. Diğerinden farkı constructors'larında birden fazla değer alma durumlarını koymadık. Sadece head girebilir.
public class Node
{
//Node kendi içindeki ve sağında solunda olabilecek yeni Node'ları barındırıyor
public int head;
public Node sol;
public Node sag;

//Node'un yaprakları değer almayacak. Onlara değer atamak için tekrar node oluşturmalıyız.
public Node(int head)
{
this.head=head;
this.sol=null;
this.sag=null;
}
}

public class Program
{
public static void Main()
{
//Ağacımızı en tepeden oluşturmaya başladık.
var agac = new Node(5);
//Ağacın sol yaprağına yeni bir Node tanımlayak oluşturduk.
agac.sol=new Node(3);
//Ağacın sağ yaprağına yeni bir Node tanımlayak oluşturduk.
agac.sag=new Node(7);

agac.sol.sol= new Node(1);
agac.sol.sag= new Node(4);

agac.sag.sol= new Node(6);
agac.sag.sag= new Node(8);

Console.WriteLine("Ağaç head= " + agac.head);
Console.WriteLine("Ağaç sol yaprağı= " + agac.sol.head);
Console.WriteLine("Ağaç sag yaprağı= " + agac.sag.head);

Console.WriteLine("Ağaç sol'un sol yaprağı= " + agac.sol.sol.head);
Console.WriteLine("Ağaç sol'ın sag yaprağı= " + agac.sol.sag.head);

Console.WriteLine("Ağaç sag'ın sol yaprağı= " + agac.sag.sol.head);
Console.WriteLine("Ağaç sag'ın sag yaprağı= " + agac.sag.sag.head);
}
}

1.soru binary tree search kodu:
using System; 
using System.Collections.Generic; 
using System.Text; 
  
namespace AramaAgaci 

//Önceki sorudan Node class’ımı aldım. Head için değer alırken sağ ve sol için yeni oluşacak Node türünde oluşturdum.
    class Node 
    { 
        public int head; 
        public Node sol; 
        public Node sag; 
    } 

//Yeni bir class oluşturdum. Ağacın içinde gezme işlemini main içinde yapmak istemediğimden dolayı.
    class Agac 
    { 
        public Node kök; 
//Yeni bir araç oluşturuyoruz.
        public Agac() 
        {  
            kök = null;  
        } 
//Agacın tamamını getirmek için.
        public Node ReturnKök() 
        { 
            return kök; 
        } 
//Ekle fonksiyonu sayesinde yeni gelecek değerin en üstten itibaren kontrol edilerek gerekli yere yerleşmesi sağlanıyor.
        public void Ekle(int gelen) 
        { 
            Node yeni = new Node(); 
            yeni.head = gelen; 
//Eğer daha önce ekleme yapılmamışsa kök boştur. Yani ilk eleman demektir. Direk ekle demek.
            if (kök == null) 
                kök = yeni; 
//Eğer gelen sayı ilk eleman değilse else’e düşüyor ve koşullar başlıyor.
            else 
            { 
                Node simdi = kök; 
                Node ana; 
                while (true) 
                { 
                    ana = simdi; 
//Burada gelen sayının kök dizinin sağında mı solunda mı olacağını belirliyoruz.
                    if (gelen < simdi.head) 
                    { 
                        simdi = simdi.sol; 
                        if (simdi == null) 
                        { 
                            ana.sol = yeni; 
                            return; 
                        } 
                    } 
//Head’den büyükse sağ tarafa yerleşeceği kısım.
                    else 
                    { 
                        simdi = simdi.sag; 
                        if (simdi == null) 
                        { 
                            ana.sag = yeni; 
                            return; 
                        } 
                    } 
//Bu işlemi yerleşene kadar while true döngüsünde yapıyoruz.
                } 
            } 
        } 
//Oluşan ağacımızı preorder yazdırmak istersek.
        public void Preorder(Node gelen) 
        { 
            if (gelen!= null) 
            { 
                Console.Write(gelen.head + " "); 
                Preorder(gelen.sol); 
                Preorder(gelen.sag); 
            } 
        } 
//Oluşan ağacımızı inorder yazdırmak istersek.
        public void Inorder(Node gelen) 
        { 
            if (gelen!= null) 
            { 
                Inorder(gelen.sol); 
                Console.Write(gelen.head + " "); 
                Inorder(gelen.sag); 
            } 
        } 
//Oluşan ağacımızı postorder yazdırmak istersek.
        public void Postorder(Node gelen) 
        { 
            if (gelen != null) 
            { 
                Postorder(gelen.sol); 
                Postorder(gelen.sag); 
                Console.Write(gelen.head + " "); 
            } 
        } 
    } 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            Agac agac = new Agac(); 
            agac.Ekle(20); 
            agac.Ekle(25); 
            agac.Ekle(45); 
            agac.Ekle(15); 
            agac.Ekle(67); 
            agac.Ekle(43); 
            agac.Ekle(80); 
            agac.Ekle(33); 
            agac.Ekle(67); 
            agac.Ekle(99); 
            agac.Ekle(91);             
            Console.WriteLine("Inorder Traversal : "); 
            agac.Inorder(agac.ReturnKök()); 
            Console.WriteLine(" "); 
            Console.WriteLine(); 
            Console.WriteLine("Preorder Traversal : "); 
            agac.Preorder(agac.ReturnKök()); 
            Console.WriteLine(" "); 
            Console.WriteLine(); 
            Console.WriteLine("Postorder Traversal : "); 
            agac.Postorder(agac.ReturnKök()); 
            Console.WriteLine(" "); 
            Console.ReadLine(); 
        } 
    } 


2.soru komşuluk matrisi:
using System;
using System.Collections;

//Koselerin bilgilerini tutacağımız Kose class’ını oluşturdum.
public class Kose
{
public string ad;
public ArrayList baglanti= new ArrayList();

//Kose’nin adını atıyacağımız constructor.
public Kose(string ad)
{
this.ad=ad;
}

//Kose’ye bağlantı ekleyeceğimiz metod oluşturdum.
public void baglantiEkle(Kose kose)
{
this.baglanti.Add(kose.ad);
}

}

public class Program
{
public static void Main()
{
//5 yeni köşe oluşturarak bunlara bağlantılar ekledim.
var A = new Kose("A");
var B = new Kose("B");
var C = new Kose("C");
var D = new Kose("D");
var E = new Kose("E");

A.baglantiEkle(B);
A.baglantiEkle(C);
A.baglantiEkle(E);

B.baglantiEkle(A);
B.baglantiEkle(C);

C.baglantiEkle(A);
C.baglantiEkle(B);
C.baglantiEkle(D);

D.baglantiEkle(C);
D.baglantiEkle(E);

E.baglantiEkle(A);
E.baglantiEkle(D);

Console.WriteLine("A'nın bağlı olduğu köşeler: ");
Console.WriteLine("---------------------------");
foreach(string kose in A.baglanti)
{
Console.WriteLine(kose);
}

Console.WriteLine("B'nin bağlı olduğu köşeler: ");
Console.WriteLine("---------------------------");
foreach(string kose in B.baglanti)
{
Console.WriteLine(kose);
}

Console.WriteLine("C'nin bağlı olduğu köşeler: ");
Console.WriteLine("---------------------------");
foreach(string kose in C.baglanti)
{
Console.WriteLine(kose);
}

Console.WriteLine("D'nin bağlı olduğu köşeler: ");
Console.WriteLine("---------------------------");
foreach(string kose in D.baglanti)
{
Console.WriteLine(kose);
}

Console.WriteLine("E'nin bağlı olduğu köşeler: ");
Console.WriteLine("---------------------------");
foreach(string kose in E.baglanti)
{
Console.WriteLine(kose);
}

}
}
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.