Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Java Programlama Giriş/Çıkış
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Listeler.
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
Veri Yapıları ve Algoritmalar dönem
Bölüm 4 – Kontrol İfadeleri:1.kısım
OOP UYGULAMA 5.
EDUTIME Java Day 4 Serdar TÜRKEL.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Karar ifadeleri ve Döngüler
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Java Programlama Koleksiyon(Collection) Sınıfları
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
DİZİLER.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DELEGATE OOP-UYG.
C# Metot Overloading (Aşırı yükleme)
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ
Görsel C# Programlama Güz 2009 (6. Hafta).
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Java Sınıf ve Nesne Kavramı UML Gösterimi
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
JAVA İLE PROGRAMLAMAYA GİRİŞ
ÇOK BİÇİMLİLİK POLYMORPHISM
Önceki Dersi Hatırlama !!
INTERNET TABANLI PROGRAMLAMA
Kalıtım.
NESNEYE YÖNELİK PROGRAMLAMA
Numaralandırmalar(Enumaration)
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
JAVA’DA DİZİLER Dr.Galip AYDIN.
Dizi ve ArrayList.
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
Ders İçeriği Liste Soyut veri yapısı (ADT)
Ders 1: ARRAYLIST Hazırlayan : Yrd. Doç. Dr. Barış GÖKÇE
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
String class String karakterler dizisidir
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
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.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
JAVA PROGRAMLAMA ORNEKLER
Görsel C# ile Windows Programlama
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
Yığıt Soyut Veri Tipi (Stack ADT) Yığıt Veri Yapısı
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
Hafta2 Rekürsif Algoritmalar
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
5- class & object Nesne Yönelimli Programlama - i
3- VERİ TİPLERİ - OPERATÖRLER Nesne Yönelimli Programlama - i
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.
Kurucular(Yapıcılar), Yıkıcılar
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Sunum transkripti:

Trees, Vectors, Iterators

ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları

Ağaçlar (Trees) Listelerde olduğu gibi ağaçlar da birçok elemandan (Node) oluşur. Yaygın bir ağaç şekli ikili ağaçlardır (Binary Trees). Bu ağaçlarda herbir eleman diğer iki elemana referans taşır. public class Agac { Object veri; Agac sol, sag; }

Ağacın tepesi kök, diğer elemanlar dal, null referans taşıyan elemanlar ise yaprak olarak adlandırılır.

Kurucu metod public Agac(Object veri, Agac sol, Agac sag) { this.veri = veri; this.sol = sol; this.sag = sag; } Önce çocuk elemanları oluşturalım: – Agac sol = new Agac (new Integer(2), null, null); Agac sag = new Agac (new Integer(3), null, null); Kök elemanın oluşturulması: – Agac agac = new Agac (new Integer(1), sol, sag);

Özyineleme metoduyla ağaç elemanlarına ulaşılması public static int total (Agac agac) { if (agac == null) return 0; Integer veri = (Integer) agac.veri; return veri.intValue() + total (agac.sol) + total (agac.sag); }

İfade ağaçları (Expression Trees) * 3 Çarpma işleminin toplama işleminden önce yapılacağı bilinmezse bu işlemin sonucu belirsizdir.

Ağaçların yazdırılması Ağacın kökünden başlamak üzere elemanlarını yazdırma: – public static void print (Agac agac) { if (agac == null) return; System.out.print (agac + " "); print (agac.sol); print (agac.sag); } + 1 * 2 3

Önce dalların sonra kök elemanın yazdırılması: public static void printPostorder (Agac agac) { if (agac == null) return; printPostorder (agac.sol); printPostorder (agac.sag); System.out.print (agac + " "); } * +

Önce sol, sonra kök sonra da sağ ağacın yazdırılması: public static void printInorder (Agac agac) { if (agac == null) return; printInorder (agac.sol); System.out.print (agac + " "); printInorder (agac.sag); } * 3

Vector Class Vector Sınıfı dinamik olarak boyut değiştirebilen Object dizisi işlevi görür. Size vektörün tuttuğu eleman sayısını Capacity vektörün işgal ettiği yeri gösterir v.add(Object o): eleman ekleme v.get(index): herhangi bir indexteki elemanı alma. Geriye Object döndürür

Iterators Iterator iterator = v.iterator (); while (iterator.hasNext ()) { System.out.println (iterator.next ()); } ListIterator iter = v.listIterator(); while (iter.hasNext()) { System.out.println((String)iter.next()); }