1) a) Aşağıdaki bilgileri Şekil 1’de görülen Bileşik Veri Yapısına Yerleştiren etkin Java programını kurşunkalemle A4 boyutunda bir kağıda yazınız. Kuyruğun her bir elemanının, Urun sınıfı cinsinden olmasına dikkat ediniz. Öncelikle ürün sınıfını oluşturunuz. b) Daha sonra kodlayarak çalıştırınız. Urunler = { Masa, Sandalye, Dolap, TV, Süpürge, Fırın, Bulaşık M., Çamaşır M., Ütü, Kanepe } Fiyatlar= { 100, 40, 70, 450, 80, 120, 450, 500, 50, 90} Kanepe, 390 Ürün Masa, 100 Fırın, 120 Ütü, 50 Dolap, 70 Süpürge, 80 Çamaşır M., 500 Sandalye, 40 TV, 450 Bulaşık M., 450 Queue Vector Şekil 1: Kuyruklardan oluşan Vektör (Bileşik Veri Yapısı) 2) a) 1. Soruda belirtilen Bileşik Veri Yapısındaki Verileri bir Hash Table’a yerleştiren kodu yazınız. b) Tüm ürünlerin fiyatlarını %5 artırarak Hash Tablosuna tekrar yazan kodu yazınız. 3) a) Sadece fiyatları bir Heap’e (Java’daki PriorityQueue Heap düzenindedir) yerleştiren kodu yazınız. b) En ucuz 3 ürünün fiyatını öğrenmek için Heap’ten çeken kodu yazınız. 4) a) 1. sorudaki 2 diziden Ürün nesnelerini oluşturup, ürün adına göre alfabetik sırada ikili arama ağacına yerleştiren kodu yazınız. Hazır ağaç kodlarından yararlanabilirsiniz. b) Ağacın derinliğini, eleman sayısını ve düğümlerin derinlik ortalamasını bulan metodu (veya metotları) yazınız. 5) a) Ders kitabındaki 3. Bölümden (Simple Sorting) bir sıralama algoritması seçerek okuyunuz, öğreniniz, mantığını anlayınız. Kitaba veya hazır koda bakmadan bir A4 kağıdına kurşunkalemle yazınız. b) Ders kitabındaki 7. Bölümden (Advanced Sorting) bir sıralama algoritması seçerek okuyunuz, öğreniniz, mantığını anlayınız. Java’da kodlayınız. c) Her iki yöntemin zaman karmaşıklıklarını hesaplayınız ve 1 paragraf açıklama yazarak yöntemleri karşılaştırınız.