C# Veri Yapıları Ağaç Veri Yapısı-Ağaç Oluşturma - Bilişim Konuları

C# Veri Yapıları Ağaç Veri Yapısı-Ağaç Oluşturma

Bu örneğimizde Veri yapılarından olan Ağaç veri yapısını işleyeceğiz. Yaptığımız bu C# programı ile ağaç veri yapısı oluşturacağız. Ağaç veri yapısında, yapı kök düğümden başlayarak dallara ve yapraklara doğru genişler. Kök düğümden küçük olan düğün numaraları kökün sağ tarafına eklenir. Kök düğümden büyük olan düğüm numaraları ise kökün sol tarafına eklenir. Bu dal ve yaprak ekleme işlemi kökten sonraki yerlerde de aynı şekilde uygulanır. Aşağıdaki örnek şekillerde çeşitli ağaç veri yapısına örnekler gösterilmiştir.

agac1

Örnek ağaç veri yapısı

agac1

Örnek ağaç veri yapısı

C# kodları:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace agac_veri_yapisi
{
    public partial class Form1 : Form
    {
        public Form1()
        {

            InitializeComponent();
        }


        public class node
        {
           public int deger;
           public node sol;
           public node sag;
        }

        node kok = null;

        private void btn_dugumEkle_Click(object sender, EventArgs e)
        {

            node yeni = new node();
            yeni.deger =Convert.ToInt32(txb_dugumDeger.Text);

            //ağaca ekleme bölümü

            if (kok==null)
            {
                kok = yeni;
                kok.sag = null;
                kok.sol = null;
            }
            else
            {
                node yedek = kok;
                node gecici = kok;

                while (true)
                {
                   yedek=gecici;

                    if (yedek.deger<=yeni.deger)
                    {
                        gecici = gecici.sag;
                        if (gecici == null)
                        {
                            yedek.sag = yeni;
                            yedek = yedek.sag;
                            yedek.sag = null;
                            yedek.sol = null;
                            return;
                        }                      

                    }
                    else
                    {
                        gecici = gecici.sol;
                        if (gecici==null)
                        {
                            yedek.sol = yeni;
                            yedek = yedek.sol;
                            yedek.sol = null;
                            yedek.sag = null;
                            return;
                        }
                      
                    }

                }
            }



        }


        private void btn_dugumEkle_MouseLeave(object sender, EventArgs e)
        {
           
        }

        private void btn_agacGoster_Click(object sender, EventArgs e)
        {
            txb_agacGoster.Text = null;
               goster(kok);
        }

        public void goster(node agackok)
        {

            if (agackok==null)
            {
                return;
            }
            
            goster(agackok.sag);
            txb_agacGoster.Text = txb_agacGoster.Text+agackok.deger.ToString()+"-->";
            goster(agackok.sol);
           
        }
    }
}

Programın Ekran Görüntüleri:

agac-veri1

Yukarıdaki resimde ağaç veri yapısının gösterileceği bir adet listbox ve ağaca düğüm eklememizi sağlayacak olan bir adet textbox nesnesi bulunmaktadır.

agac-veri2

Yukarıdaki resimde ağaç kökü olarak 10 numaralı düğüm eklenmiştir.

agac-veri3

Yukarıdaki resimde ağaç gövdesinden küçük numaralı düğümlerin eklenmesiyle 10 numaralı ağaç gövdesinden sağ tarafa eklenmesi görülmektedir.

agac-veri4

Yukarıdaki resimde ağaç gövdesi olan 10 numaralı düğümden büyük olan numaralı düğümlerin eklenmesi ağaç gövdesinin sol tarafına eklenmiştir.

Bu Yazıya Tepkin Nedir?
+1
1
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Yorum Yap