Ders erii Liste Tanm ve Operasyonlar Soyut veri
- Slides: 25
Ders İçeriği • Liste – Tanım ve Operasyonları • Soyut veri yapısı (ADT) – Tanım & fonksiyonlar • Liste Gerçekleştirimi: Array. List • JAVA Koleksiyon API (Collections API) – Tekrarlayıcı (Iterator) • Uygulama – Java ile Array. List Gerçekleştirimi 1
• Liste ? Liste(List) - Tanım – A 1, A 2, …, An şeklinde eleman dizisi. – Elemanlar rastgele olabilir, fakat aynı tüde olmalı ( hepsi tamsayı (int), hepsi ondalık sayı (double) vb) • Örnek 5 elemanlı liste (indis 0 -4 arasında) – 2, 6, 1, 2, 3 • • • 2’nin indisi 6’nın indisi 1’in indisi 2’nin indisi 3’ün indisi 0 1 2 3 4 2
Liste Operasyonları: ekleme • Listenin sonuna yeni eleman ekleme – 4, 6, 1, 4, 5 ekle(8) 4, 6, 1, 4, 5, 8 • Elemanı listenin herhangi bir pozisyonuna ekleme – 4, 6, 1, 4, 5 ekle(2, 9) 4, 6, 9, 1, 4, 5 3
Liste Operasyonları: silme • Listede olan bir elemanı silme – – 4, 6, 1, 4, 5 sil(2) 4, 6, 4, 5 sil(0) 6, 1, 4, 5 sil(1) 4, 1, 4, 5 sil(4) 4, 6, 1, 4 4
Liste Operasyonları: indis & son. Indis • indis yordamı listedeki ilk eşleşen elemanın indisini döndürür. – 4, 6, 1, 4, 5 indis(6) 1 – 4, 6, 1, 4, 5 indis(5) 4 – 4, 6, 1, 4, 5 indis(4) 0 • son. Indis yordamı ise listedeki eşleşen son elemanın indisini döndürür – 4, 6, 1, 4, 5 son. Indis(1) 2 – 4, 6, 1, 4, 5 son. Indis(4) 3 5
Liste Operasyonları: get & set • get yordamı parametre olarak verilen indisteki değeri döndürür. – 4, 6, 1, 4, 5 get(1) 6 – 4, 6, 1, 4, 5 get(3) 4 – 4, 6, 1, 4, 5 get(0) 4 • set yordamı verilen indisteki değeri verilen değere atar. – 4, 6, 1, 4, 5 set(1, 9) 4, 9, 1, 4, 5 – 4, 6, 1, 4, 5 set(3, 5) 4, 9, 1, 5, 5 – 4, 6, 1, 4, 5 set(4, 7) 4, 9, 1, 4, 7 6
Soyut Veri Tipleri (Abstract Data Type - ADT) • Şimdiye kadar Soyut veri tiplerinin (ADT) operasyonlarına baktık. – Operasyonlarda ADT’nin nasıl davrandığı gösterildi, fakat nasıl gerçekleştirildiği konusuna değinilmedi. – Çoğu zaman ADT’yi gerçekleştirmek için birden fazla yol vardır. 7
Soyut Veri Tipleri (ADT) - devam • Soyut veri tipleri operasyonları olan veri yapısıdır. özellik (ADT durum) … … İşlemler (ADT Yordamları) islem 1(…) islem 2(…) islem 3(…) … … … 8
Liste class Liste { … void int bool int int add(int e); add(int pos, int e); remove(int pos); index. Of(int e); last. Index. Of(int e); clear(); is. Empty(); first(); last(); get(int pos); size(); // // // sona ekle belirli pozisyona ekle sil baştan arama sondan arama Tüm elemanları sil liste boş mu? ilk eleman son eleman belirli pozisyondaki değer listedeki eleman sayısı } 9
Liste Kullanımı Public static void main(String[] args){ List list = new List(); // boş bir liste oluştur list. add(10); list. add(5); list. add(1, 7); list. add(2, 9); // // 10 10, 5 10, 7, 9, 5 list. index. Of(7); list. get(3); list. remove(1); list. size(); list. is. Empty(); // // // 1 döndürür 5 döndürür 10, 9, 5 3 döndürür false döndürür list. remove(0); list. clear(); // 9, 5 // boş liste delete list; }/* bitti-main */ // Liste nesnesini sil 10
Liste: Gerçekleştirim • İki tür gerçekleştirim vardır: – Dizi tabanlı – Bağlantılı liste • ADT operasyonlarının farklı gerçekleştirimlerinin çalışma zamanını karşılaştıralım. 11
Liste: Dizi tabanlı gerçekleştirim • Temel fikir: – – Büyük bir dizi için yer açın (MAX) N ile ilk boş yeri tutun N = 0 ise liste boş Silme veya ekleme işleminde elemanları kaydırın. 0 1 2 3 ……… N-1 A_2 A_3 A_4 ……… A_N-1 MAX
Array. List – Java Array. List ADT class Array. List { private int kapasite; private int elem. Sayisi; private int[] items; // Yapıcı yordam: // Boş liste oluştur public Array. List(){ int[] items = new int[4]; kapasite = 4; elem. Sayisi = 0; } // bitti-Array. List (); //Yapıcı y. void add(int pos, int e); void remove(int pos); int index. Of(int e); bool is. Empty(); int first(); int last(); int get(int pos); int size(); } 13
Liste Operasyonları : add • add(pizisyon P, Eleman. Türü E) – Örnek: add(2, X): X’i 2 nolu pozisyona ekle • Temel Fikir: Yeni elemanı eklemek için elemanları 1 birim sağa kaydır. 0 1 2 3 ……… N-1 A_2 A_3 A_4 ……… A_N MAX • X eklendikten sonraki görüntü. • Çalışma zamanı: O(N) 0 1 2 3 ……… A_1 A_2 X A_3 ……… N-1 N A_N-1 A_N MAX
Add – Dolu Dizi • Eğer dizi doluysa ne yapılabilir? – Hata döndürülebilir. • – Tercih edilmez. Genel olarak aşağıdakiler yapılır: (1) Daha büyük bir dizi oluştur (genellikle kapasite 2 kat arttırılır) (2) Eski dizideki tüm elemanları yeni diziye kopyala (3) Eski diziyi sil (4) Yeni diziyi kullanmaya başla – Bu dinamik dizi gerçekleştiriminde ayrıca kapasiteyi de kontrol altında tutulması gerekmektedir.
Liste Operasyonları: silme • remove(pozisyon P) – Örnek: remove(1): 1 nolu pozisyondaki elamanı sil • Temel fikir: Elemanı sil ve elemanları sola bir adım kaydır. 0 1 2 3 ……… N-1 A_2 A_3 A_4 ……… A_N MAX • Listenin son durumu. Çalışma zamanı: O(N) 0 1 2 3 ……… N-2 A_1 A_3 A_4 A_5 ……… A_N N-1 MAX
Liste Operasyonları: index. Of • index. Of(eleman. Türü E) – Örnek: index. Of(X): Listede X’i arama 0 1 2 3 ……… N-1 A_2 A_3 A_4 ……… A_N • Doğrusal arama yapılmalı – Çalışma zamanı: O(N) MAX
Liste Operasyonları: is. Empty • is. Empty() – Eğer liste boşsa true döndür – Eğer liste doluysa false döndür 0 1 2 3 ……… N-1 A_2 A_3 A_4 ……… A_N • Eğer N == 0 ise true döndür – Çalışma zamanı: O(1) MAX_SIZE
Lists Operations: first, last, get • first(): Return A[0] • last(): Return A[N-1] • get(pozisyon K): Return A[K] 0 1 2 3 ……… N-1 A_2 A_3 A_4 ……… A_N • first – Running time: O(1) • last – Running time: O(1) • get – Running time: O(1) MAX_SIZE
JAVA Koleksiyon (Collection) API • Veri yapıları: veri üzerinde izin verilerin ve operasyonların gösterilmesidir. • Genel veri yapıları verileri toplar ve bu veriler üzerinde ekleme, silme, erişme gibi işlemlere izin verir. • JAVA Collections API arayüzü genel veri yapılarını ve bu veri yapıları üzerinde genel işlemleri destekler. 20
JAVA Koleksiyon(Collections) API 21
JAVA Koleksiyon(Collections) API 22
Tekrarlayıcı (Iterator) • Ö. ğ. Array. List elemanları ekrana yazdırma. – liste nesnesinin Array. List olduğu düşünülürse for(int i=0 ; i < liste. size() ; i++) System. out. println( liste. get(i) ); • Burada i iterasyon nesnemiz. – Çünkü, tekrarı kontrol eden nesnemiz. 23
Tekrarlayıcı (Iterator) • Dizideki elemanları ekrana yazdırma. Iterator i = liste. iterator(); while( i. has. Next() ) System. out. println( i. next() ); 24
Uygulama • Array. List sınıfı gerçekleştirimi • Aşağıdaki yordamları yazınız. – 5 kapasiteli dizi oluşturan yapıcı yordam – – – void int bool int int add(int e); add(int pos, int e); //isteğe bağlı remove(int pos); //isteğe bağlı index. Of(int e); last. Index. Of(int e); clear(); //isteğe bağlı is. Empty(); first(); last(); get(int pos); size(); 25
- Erii ne demek
- Helium tanm
- Stock tanm
- Somutlaştırma soyutlaştırma örnekleri
- Wordwall somut soyut
- Düzine soyut mu somut mu
- Amerikan soyut dışavurumculuğu
- ürün hattı nedir
- Mimarlıkta soyutlama
- Somut soyut nedir
- Musıcam ses kodlama ve sıkıştırma
- Trafik lambası algoritması
- Mebbis özel hedef girişi
- Veri taban
- Veri tabanlı pazarlama
- Marmara veri tabanı
- Vbç
- Nitel araştırmada veri toplama teknikleri
- Veri tabanı normalizasyon
- Ordinal değişken
- Dağıtılmış veri tabanı nedir
- Kişisel veri envanteri örnek excel
- Sistem akış diyagramı
- Vzkriesenie lazara
- Veri açıklığı nedir
- Veri açıklığı nedir