Binary Tree nedir?uygulamas nasl yaplr?



Benzer belgeler
Ağaçlar (Trees) Ağaçlar (Trees)

Final Sınavı Soruları Bahar 2018

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

AĞAÇLAR. Doç. Dr. Aybars UĞUR

Final Sınavı Örnek Soruları Bahar 2018

Veri Yapıları. Ağaçlar

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

Arasınav Soruları Bahar 2018

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK

Ağaç (Tree) Veri Modeli

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

YZM 2116 Veri Yapıları

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

C++ Dersi: Nesne Tabanlı Programlama

YZM 2116 Veri Yapıları

BIL222 Veri Yapıları ve Algoritmalar

AĞAÇ-TREE VERİ YAPISI

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Karma C/C + + Kodlama

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Arasınav Örnek Soruları Bahar 2018

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Çok Yollu Ağaçlar (Multi-Way Trees)

Veri Yapıları. Ağaçlar. Ağaçlar genel bilgi

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Fall Object-Oriented Programming Laboratory 02 - Structures

Parçacık (Widget) Eren BAŞTÜRK

1 PROGRAMLAMAYA GİRİŞ

C++ Dersi: Nesne Tabanlı Programlama

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

NESNEYE YÖNELİK PROGRAMLAMA

C++ Dersi: Nesne Tabanlı Programlama

Object-Oriented Programming Laboratuvar 10

C++ Operatörler (Operators)

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR

C++ Dersi: Nesne Tabanlı Programlama

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Ç NDEK LER 1 XML E G R fi 1 XML Nedir? 1 XML in Avantajlar 3 HTML ve XML Aras ndaki Farklar 4 XML Dosyalar n Görüntülemek 6 XML Dosyas Oluflturmak 9

C++ Dersi: Nesne Tabanlı Programlama

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

C++ Dersi: Nesne Tabanlı Programlama

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

KONU 7: DOSYA İŞLEME ( File Processing )

Ad Soyad: İmza: Object-Oriented Programming Quiz 4 60dk. Kapalı kitap. Kapalı defter. Kapalı cep telefonu. Hesap makinesi yok.

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Struts2 ile Merhaba Dünya uygulamas

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1

NESNEYE YÖNELİK PROGRAMLAMA

Bölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73

int main(void) { int num = 0; int input = 1; int retval = 0; struct NODE *nodepointer; nodepointer = (struct NODE *)malloc(sizeof(struct NODE));

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

A- VERİTABANI BAĞLANTISINI HAZIR NESNE KULLANARAK YAPMA

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

C++ Dersi: Nesne Tabanlı Programlama

Veri Yapıları Lab Notları 1

#ifndef COMPLEX_H #define COMPLEX_H

Ders 8: Metotlar. barisgokce.com

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

PROGRAMLAMA TEMELLER. C Program Yap s

#$% &'#(# Konular. Binary Tree Structures. Binary Search Trees AVL Trees Internal Path Reduction Trees Deerlendirme

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

11- FONKSİYONLAR (FUNCTIONS)

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

Nesneye Yönelik Programlama-JAVA, Ders sorumlusu Yrd.Doç.Dr.Hilmi KU ÇU

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

Nesneye Yönelmek. veya sadece formülleri bilgisayarın anlayacağı dile çevirmeyi bilen birinin C++ kullanma yöntemleri. Gökhan Ünel

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Builder Tasarım Şablonu KurumsalJava.com

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

Burak Kıymaz JAVA FX

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

KRİPTOANALİZ DERSİ FİNAL ÖDEVİ. PSO ile TRANSPOSITION CIPHER ÇÖZÜMÜ

YMT219 VERİ YAPILARI ÖDEV-1

BAĞLANTILI SĐSTEMLER ĐLE MODEL BĐR YERLEŞKE A MODEL CAMPUS WITH CONNECTED SYSTEMS

NESNEYE YÖNELİK PROGRAMLAMA

Android ile SQLLite Veri Tabanı

Proje 1. Arayüz Tasarımı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

C++11'in Bazı Yenilikleri ve D'deki Karşılıkları

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Algoritma ve Programlama: Karar Yapıları ve Döngüler

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

#$% &'#(# Konular. B-Tree and Derivatives. B-Trees B#-Trees B+-Trees Deerlendirme

C# Console Uygulamaları ifelse Yapıları 2

«BM364» Veritabanı Uygulamaları

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

NESNEYE YÖNELİK PROGRAMLAMA THIS İŞARETÇİSİ, KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR,NESNE DİZİLERİ

QT Eğitimi - 4 : İkili Saat (Binary Clock)

Temel JavaFX Bileşenleri (1) Labeled, Label, Button, ToggleButton, RadioButton, ToggleGroup, CheckBox, ComboBox, Slider, ListView ve SelectionModel

BIP116-H14-1 BTP104-H014-1

Transkript:

Yazar : Tu çe Kalkavan Web : tugcekalkavan.net admin@tugcekalkavan.net Bili³im Blo u Binary Tree nedir?uygulamas nasl yaplr? Bu bölümde veri yaplarnda önemli bir konu olan binary tree konusunu anlatmaya çal³aca m. 1 Açklama A açlar hiyerar³ik yaplar göstermekte kullanlr. Elektirik devreleri analizinde,matematiksel baz de erlerin gösteriminde,veritabann organize etme i³lemlerinde bu a aç yaplar kullanlr. A aç, dü üm(node) dedi imiz yaplarn toplanmasyla olu³ur.a acn içinde bulunan her elemana dü üm denir. 2 Terminoloji Root: En üstteki dü üme root denir.a, root dü ümdür. Internal dü üm: Bir üstünde bir node bulunan ve en az 1 tane çocu u bulunan dü üme internal node(dü üm) denir.d,e,f internal dü ümlerdir. Yaprak(Leaf)dü ümü: Bir üstünde dü üm bulunan ama hiç çocu u olmayan dü ümlere yaprak(leaf) dü üm denir.örne in G,H,I leaf dü ümlerdir. tugcekalkavan.net Bili³im Blo u Sayfa: 1 / 6

Bir dü ümün düzey (level) veya derinli i (depth) : Bir dü ümün kök dü ümden olan uzakl dr.örne in D dü ümünün düzeyi veya derinli i 2'dir. A acn derinli i (depth of tree) : En derindeki yapra n derinli i veya yüksekli idir.örne in ³ekildeki a acn derinli i 3'tür. Çocuk(child) dü üm: Bir dü ümün bacaklarna ba lanan dü ümlerdir.örne in D ve E,B'nin çocu udur(child). Parent dü üm:bir dü üm, sa ve sol ba lar ile ba - land üst dü üme denir.örne in D ve E'nin parent B'dir. Bu temel kavramlar ö rendikten sonra binary tree'yi uygulamaya geçirebiliriz. 3 Dola³ma yöntemleri Sistematik bir ³ekilde bütün dü ümleri ziyaret edebiliriz.bunun için temel olarak 3 tip dola³ma yöntemi vardr.dola³ma yöntemlerin isimleri dü ümün ne zaman ziyaret edilece ini ifade eder. Preorder Traversal Dü ümü ziyaret et Sol subtree'yi traverse et. Sa subtree'yi traverse et. Inorder Traversal Left subtree yi traverse et. Dü ümü ziyaret et. Right subtree yi traverse et. Postorder Traversal Left subtree yi traverse et. Right subtree yi traverse et. Dü ümü ziyaret et. tugcekalkavan.net Bili³im Blo u Sayfa: 2 / 6

Preorder Traversal: 3 8 4 7 2 5 6 1 Inorder Traversal: 7 4 8 2 3 6 5 1 Postorder Traversal: 7 4 2 8 6 1 5 3 4 Kod Herhangi bir text editorunde binary.h adnda bir c++ dosyas açalm. #include<iostream> struct Node int data; Node *left; Node *right; ; class BinaryTree tugcekalkavan.net Bili³im Blo u Sayfa: 3 / 6

public: BinaryTree(); void PreorderTraversal(); void PostorderTraversal(); void InorderTraversal(); void BuildTree(); private: Node *root; void PRET(Node *node); void POSTT(Node *node); void INT(Node *node); Node *CreateNode(int data); ; BinaryTree::BinaryTree() root = NULL; Node *BinaryTree::CreateNode(int data) Node *n = new Node; n->data=data; n->left=null; n->right=null; return n; void BinaryTree::BuildTree() //Yeni bir root yarat\t1\i yoruz. root = CreateNode(3); //8 ve 5 düÿümlerini yarat\t1\i yoruz Node *n1 = CreateNode(8); Node *n2 = CreateNode(5); root->left = n1; root->right = n2; Node *n3 = CreateNode(4); Node *n4 = CreateNode(2); n1->left = n3; n1->right = n4; tugcekalkavan.net Bili³im Blo u Sayfa: 4 / 6

Node *n5 = CreateNode(7); n3->left = n5; void BinaryTree::PreorderTraversal() std::cout << "...Preorder Traversal..." << std::endl; BinaryTree::PRET(root); void BinaryTree::PostorderTraversal() std::cout << "...Postorder Traversal..." << std::endl; BinaryTree::POSTT(root); void BinaryTree::InorderTraversal() std::cout << "...Inorder Traversal..." << std::endl; BinaryTree::INT(root); void BinaryTree::PRET(Node *node) if (node!= NULL) std::cout << node->data << std::endl; BinaryTree::PRET(node->left); BinaryTree::PRET(node->right); void BinaryTree::POSTT(Node *node) if (node!= NULL) BinaryTree::POSTT(node->left); BinaryTree::POSTT(node->right); std::cout << node->data << std::endl; void BinaryTree::INT(Node *node) tugcekalkavan.net Bili³im Blo u Sayfa: 5 / 6

if (node!= NULL) BinaryTree::INT(node->left); std::cout << node->data << std::endl; BinaryTree::INT(node->right); imdide test etmek için test.cpp adnda bir dosya açalm ve ³u kodlar ekleyelim. #include <iostream> #include "binarytree.h" using namespace std; int main() BinaryTree tree; tree.buildtree(); tree.preordertraversal(); tree.postordertraversal(); tree.inordertraversal(); system("pause"); return 0; 5 Sonuç Böylece binary tree nedir,nasl uygulanr görmü³ olduk. Tu çe. tugcekalkavan.net Bili³im Blo u Sayfa: 6 / 6