© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Bölüm 12 – Veri Yapıları Konular 12.1Giriş 12.2Kendine.

Slides:



Advertisements
Benzer bir sunumlar
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Advertisements

INTRODUCTION TO CIRCUITS LAB
Chapter 16: Sınıflar ve Veri Soyutlama (Classes and Data Abstraction )
Değişkenler ve bellek Değişkenler
1 Kelime Uygulama Sunumu - 78 Bu sunumdaki kelimeler… •To guarantee •To guard •To guess •To guide •To gulp
Göstericiler (Pointers)
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Nesneye Yönelik Programlama
AVL-Ağaçları (Trees).
Prolog3 M.Fatih Amasyalı Web :
VTYS 2012 Mehmet Emin KORKUSUZ Ders - 06.
İkili Ağaçlar İkili Arama Ağaçları
Diziler PHP.
Bölüm 7 - Diziler İçerik 7.1 Giriş 7.2 Diziler 7.3 Dizileri Tanımlama 7.4 Dizileri Kullanan Örnekler 7.5 Referanslar ve Referans Parametreler.
C++ STACK SINIFI.
Tam İkili Ağaçlar 9. Ünite ağaçlardan bahseder.
The Relational Algebra and Relational Calculus
5 Sorgulama İşlemleri Veritabanı 1.
Lower Bounds for Sorting
Java Programlama Koleksiyon(Collection) Sınıfları
Bölüm 3 – Yapısal Programlama
VTYS 2012 Mehmet Emin KORKUSUZ Ders - 04.
Vbnet access bağlantısı, ekleme, güncelleme, silme
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğreneceklerimiz: –Switch – Case.
Görsel C# ile Windows Programlama
Iletisim Icin : Blog : E - Mail :
Veri Yapıları Ve Algoritmalar
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
AS IF / AS THOUGH.
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Gelişmiş Envanter Uygulaması.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Fonksiyonlar –Programı modüler hale getirir –Yerel değişkenler,
Veri Yapıları Yrd. Doç. Dr. Altan MESUT.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma.
GRAPHS ÖZET.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bu derste şunları öğreneceğiz: –CheckBox es kullanımı.
Bölüm 6 - Diziler indeks 6.1 Giriş 6.2 Diziler
Bölüm 7 - Göstericiler İndeks 7.1 Giriş
Bölüm 4 – C’de Program Kontrolü
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bölüm 6 - Diziler indeks 6.1Giriş 6.2Diziler 6.3Dizilerin.
JAVA’DA DİZİLER Dr.Galip AYDIN.
Bölüm 8 - Karakterler ve Dizgiler
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Faiz Hesaplama Uygulaması Amaçlar Bu derste öğrenilecekler:
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN.
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgeler gibi bazı teorik nesnelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 11 – Dosya İşleme Outline 11.1Giriş 11.2Veri.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Tutorial 9 – Araba Ödeme Hesaplaması Uygulaması Bu.
Veri Yapıları.
Veri Yapıları ve Algoritmalar
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
Yığıt Soyut Veri Tipi (Stack ADT) Yığıt Veri Yapısı
THE PROJECT SPORT AND US “Non-OLYMPIC GAMES”. FIVE STONES.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Döngüler ve Shift Register
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar II Ders 16 Prim algoritması.
Sunum transkripti:

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Bölüm 12 – Veri Yapıları Konular 12.1Giriş 12.2Kendine Referanslı Yapılar 12.3Dinamik Bellek Tahsisi 12.4Bağlı Listeler 12.5Yığınlar 12.6Kuyruklar 12.7Ağaçlar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Amaçlar Bu bölümde şunları öğreneceksiniz: –Veri nesneleri için dinamik bellek tahsisi ve bırakılması işlemlerini yapabilme –Göstericileri kullanarak bağlı, kendine referanslı ve özyinelemeli veri yapıları oluşturabilme –Bağlı liste, kuyruk, yığın ve ikili ağaç oluşturabilme ve kullanabilme –Çeşitli önemli bağlı veri yapısı uygulamalarını anlayabilme

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Giriş Dinamik veri yapıları –Çalışma anında büyüyüp küçülebilen veri yapıları Bağlı listeler –İstenilen yere ekleme ve çıkarma yapabilmeye izin verilir Yığınlar –Sadece yığının başına ekleme ve çıkarma yapabilme izni vardır Kuyruklar –Sondan ekleme ve başlangıçtan çıkarma yapılabilir İkili ağaçlar –Veri üzerinde yüksek hızda arama ve sıralama yapmayı sağlar, ve tekrar edilmiş veriyi eler

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Kendine Referanslı Yapılar Kendine Referanslı Yapılar –Kendisiyle aynı tipte başka bir yapı içeren bir yapı –Listeler, kuyruklar, yığınlar ve ağaçlar gibi kullanışlı yapıları oluşturmak için birbirlerine bağlanıp bir araya getirilebilirler –NULL göstericisi ile sonlanırlar ( 0 ) struct dugum { int veri; struct dugum *sonraki; } sonraki –dugum tipinde bir nesneyi işaret eder –Bağlantı olarak anlatılır Bir düğümü diğer bir düğüme bağlar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Dinamik Bellek Tahsisi 1015 Figür 12.1 Birbirine bağlanmış iki kendine referanslı yapı

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Dinamik Bellek Tahsisi Dinamik Bellek Tahsisi –Çalışma anında belleğin ayırılması ve bırakılması malloc –Ayırılacak byte sayısını alır Bir nesnenin büyüklüğünü belirlemek için sizeof fonksiyonu kullanılır –void * tipinde işaretçi geri çevirir Bir void * işaretçisi herhangi bir işaretçiye atanabilir Uygun bellek alanı bulamazsa NULL geri çevirir – Örnek yeniPtr = malloc( sizeof( struct dugum ) ); free –Malloc tarafından alınan belleği geri verir –Parametre olarak bir işaretçi alır –free ( yeniptr );

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bağlı Listeler Bağlı liste –“Düğüm” olarak adlandırılan kendine referanslı sınıf nesnelerinin doğrusal birleşimi –İşaretçi bağlarıyla bağlanmışlardır –Listenin ilk elemanını gösteren bir gösterici ile erişilir –Başlangıçtan sonraki düğümlere o anki düğümün işaretçi-bağı ile erişilir –En son düğümün işaretçi-bağı listenin sona erdiğini belirtmek için NULL olarak belirlenir Şu durumlarda dizi yerine bağlı liste kullanınız –Kaç eleman olacağını başlangıçta bilmediğinizde –Listenizin hızlıca sıralanması gerektiğinde

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bağlı Listeler

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 1 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 2 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 3 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 4 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 5 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 6 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 7 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_03.c (Part 8 of 8)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Program çıktısı (Part 1 of 3) Enter your choice: 1 to insert an element into the list. 2 to delete an element from the list. 3 to end. ? 1 Enter a character: B The list is: B --> NULL ? 1 Enter a character: A The list is: A --> B --> NULL ? 1 Enter a character: C The list is: A --> B --> C --> NULL ? 2 Enter character to be deleted: D D not found. ? 2 Enter character to be deleted: B B deleted. The list is: A --> C --> NULL

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Program çıktısı (Part 2 of 3) ? 2 Enter character to be deleted: C C deleted. The list is: A --> NULL ? 2 Enter character to be deleted: A A deleted. List is empty. ? 4 Invalid choice. Enter your choice: 1 to insert an element into the list. 2 to delete an element from the list. 3 to end. ? 3 End of run. ? 2 Enter character to be deleted: C C deleted. The list is: A --> NULL ? 2 Enter character to be deleted: A A deleted. List is empty.

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Program çıktısı (Part 3 of 3) ? 4 Invalid choice. Enter your choice: 1 to insert an element into the list. 2 to delete an element from the list. 3 to end. ? 3 End of run.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bağlı Listeler

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yığınlar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yığınlar

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_08.c (Part 1 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_08.c (Part 2 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_08.c (Part 3 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_08.c (Part 4 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_08.c (Part 5 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_08.c (Part 6 of 6) Program çıktısı (Part 1 of 2) Enter choice: 1 to push a value on the stack 2 to pop a value off the stack 3 to end program ? 1 Enter an integer: 5 The stack is: 5 --> NULL ? 1 Enter an integer: 6 The stack is: 6 --> 5 --> NULL

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Program çıktısı(Part 2 of 2) ? 1 Enter an integer: 4 The stack is: 4 --> 6 --> 5 --> NULL ? 2 The popped value is 4. The stack is: 6 --> 5 --> NULL ? 2 The popped value is 6. The stack is: 5 --> NULL ? 2 The popped value is 5. The stack is empty. ? 2 The stack is empty. ? 4 Invalid choice. Enter choice: 1 to push a value on the stack 2 to pop a value off the stack 3 to end program ? 3 End of run.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yığınlar Yığın –Yeni düğüm ekleme ve çıkarma işlemi sadece en üstten yapılabilir –Son giren ilk çıkar (Last-in, first-out (LIFO)) –Yığının sonu NULL a bağlanmış bir elemanla belirtilir –Bağlı listenin kısıtlı bir versiyonudur push –Yığının başına bir düğüm ekler pop –Yığının başından bir düğüm çıkarır –Çıkarılan değeri tutar –Çıkarma işlemi başarılı ise true döndürür

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yığınlar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yığınlar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Kuyruklar Kuyruk –Bir süpermarket kasasındaki ödeme kuyruğuna benzer –İlk giren ilk çıkar (First-in, first-out (FIFO) ) –Düğümler sadece başlangıçtan çıkarılır –Düğümler sadece sondan eklenir Ekleme ve çıkarma –Enqueue (ekleme) ve dequeue (çıkarma)

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Kuyruklar

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 1 of 7)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 2 of 7)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 3 of 7)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 4 of 7)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 5 of 7)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 6 of 7)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_13.c (Part 7 of 7) Program çıktısı (Part 1 of 2) Enter your choice: 1 to add an item to the queue 2 to remove an item from the queue 3 to end ? 1 Enter a character: A The queue is: A --> NULL ? 1 Enter a character: B The queue is: A --> B --> NULL ? 1 Enter a character: C The queue is: A --> B --> C --> NULL

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Program çıktısı (Part 2 of 2) ? 2 A has been dequeued. The queue is: B --> C --> NULL ? 2 B has been dequeued. The queue is: C --> NULL ? 2 C has been dequeued. Queue is empty. ? 2 Queue is empty. ? 4 Invalid choice. Enter your choice: 1 to add an item to the queue 2 to remove an item from the queue 3 to end ? 3 End of run.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Kuyruklar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Kuyruklar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Ağaçlar Ağaç düğümleri iki veya daha fazla bağa sahiptir – Gördüğümüz diğer bütün veri yapıları tek bağlıdır İkili ağaçlar (Binary) –Bütün düğümleri iki bağlıdır Biri, ikisi NULL olabilir veya hiçbiri olmayabilir –Kök düğüm (root) ağacın ilk düğümüdür –Kök düğümdeki her bir bağ bir çocuk düğümü (child node) işaret eder –Hiç çocuğu olmayan düğüme yaprak denir (leaf node)

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Ağaçlar

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Ağaçlar İkili arama ağacı –Sol alt düğümdeki değerler üst düğüm değerinden küçüktür –Sağ alt düğümdeki değerler üst düğüm değerinden büyüktür –Aynı değerlerin engellenmesini kolaylaştırır –Hızlı arama sağlar – dengeli ağaç için en fazla log2(n) karşılaştırma yapılır

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Ağaçlar Ağaçta dolaşma: –İç sıralı (inorder) gezinme – düğüm değerlerini artan sırada yazdırır 1. Soldaki alt ağacı iç sıralı olarak gezin 2. Düğümdeki değeri işle (örneğin değeri yazdır) 3. Sağdaki alt ağacı sıralı olarak gezin –Baştan başlayarak (preorder) gezinme 1. Düğümdeki değeri işle 2. Soldaki alt ağacı baştan başlayarak gezin 3. Sağdaki alt ağacı baştan başlayarak gezin –Sondan başlayarak (postorder) gezinme 1. Soldaki alt ağacı sondan başlayarak gezin 2. Sağdaki alt ağacı sondan başlayarak gezin 3. Düğümdeki değeri işle

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_19.c (Part 1 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_19.c (Part 2 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_19.c (Part 3 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_19.c (Part 4 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_19.c (Part 5 of 6)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. fig12_19.c (Part 6 of 6) Program Çıktısı The numbers being placed in the tree are: dup 2 2dup 5 7dup 11 The preOrder traversal is: The inOrder traversal is: The postOrder traversal is:

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Ağaçlar