İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu SORU 1 Dünyanın en uzun beş nehrini öğeleri olarak kabul eden bir yığıt (stack) yaratınız. Yığıtın üçüncü öğesini bulunuz. Yığıtın üstündeki öğeyi bulunuz ve onu yığıttan çekiniz. [Nil, Amazon, Missisipi, Yangtze, Yenisey] Stack stack = new Stack(); stack.push("nil"); stack.push("amazon"); stack.push("missisipi"); stack.push("yangtze"); stack.push("yenisey"); System.out.println(stack); System.out.println(stack.search("Missisipi")); System.out.println(stack.peek()); System.out.println(stack.pop()); System.out.println(stack); [Nil, Amazon, Missisipi, Yangtze, Yenisey] 3 Yenisey Yenisey [Nil, Amazon, Missisipi, Yangtze] SORU 2 Son beş ilimizi kendi trafik kodlarına eşleyen bir LinkedHashMap yaratınız ve bir iterator yardımıyla öğelerini yazdırınız. [77-Yalova, 78-Karabük, 79-Kilis, 80-Osmaniye, 81-Düzce] // LinkedHashMap nesnesi yarat LinkedHashMap lhm = new LinkedHashMap(); // LinkedHashSet nesnesine öğeler ekle lhm.put("yalova", new Integer("77")); lhm.put("karabük", new Integer("78")); lhm.put("kilis", new Integer("79")); lhm.put("osmaniye",new Integer("80")); lhm.put("düzce", new Integer("81")); 1
// Girilen öğeler kümesi Set set = lhm.entryset(); // iterator bildirimi Iterator itr = set.iterator(); System.out.println(lhm); {Yalova=77, Karabük=78, Kilis=79, Osmaniye=80, Düzce=81 SORU 3 {30,20,55,40,10 sayı dizisindeki en büyük sayıyı bulan bir fonksiyon yazınız. static int[] intarr = { 30, 20, 55, 40, 10 ; static void maxbul(int[] arr) { int max = arr[0]; for (int i = 0; i < arr.length; i++) if (max < arr[i]) max = arr[i]; System.out.println("Dizinin en büyük öğesi : " + max); maxbul(intarr); Dizinin en büyük öğesi : 55 SORU 4 Sınıftaki öğrencilerin adlarına, numaralarını eşleyen bir HashMap yaratınız. Map hashmap = new HashMap(); hashmap.put(20895548, "Merve Alatlı"); hashmap.put(20894828, "Aygün Damla"); hashmap.put(20893085, "Aykut Büyükkılıç"); hashmap.put(20793172, "Fehime Can"); System.out.println(); System.out.println(" Map Oğeleri:"); System.out.print("\t" + hashmap); 2
Map Oğeleri: {20793172=Fehime Can, 20894828=Aygün Damla, 20895548=Merve Alatlı, 20893085=Aykut Büyükkılıç SORU 5 Öğeleri Ankara, Malatya, Diyarbakır ve Rize olan String tipi depo eden bir ArrayList yaratınız. ArrayList in öğelerini; a. Sırasız (giriş sırasıyla) b. Doğal sırasıyla (sözlük sıralaması) c. Stringlerin uzunluklarına göre sıralayıp yazdıran bir java programı yazınız. import java.lang.string; class ComparatorDemo implements Comparator<String> { public int compare(string str1, String str2) { Integer str1length = (Integer) str1.length(); Integer str2length = (Integer) str2.length(); return str1length.compareto(str2length); class Uygulama { public static void main(string args[]) { ArrayList<String> arraylist = new ArrayList<String>(); arraylist.add(new String("Ankara")); arraylist.add(new String("Malatya")); arraylist.add(new String("Diyarbakır")); arraylist.add(new String("Rize")); System.out.println(" Sıralamadan önce : "); System.out.println("\n Sözlük sıralamasına göre : "); Collections.sort(arrayList); System.out.println("\n Uzunluklarına göre sıraladıktan sonra : "); Collections.sort(arrayList, new ComparatorDemo()); Sıralamadan önce : arraylist = [Ankara, Malatya, Diyarbakır, Rize] Sözlük sıralamasına göre : 3
arraylist = [Ankara, Diyarbakır, Malatya, Rize] Uzunluklarına göre sıraladıktan sonra : arraylist = [Rize, Ankara, Malatya, Diyarbakır] Puanlar: 1. 20 2. 20 3. 20 4. 20 5. 20 4
İST 264 VERİ YAPILARI Bitirme Sınavı B Grubu SORU 1 Dünyanın en uzun beş nehrini öğeleri olarak içeren bir kuyruk (queue) yaratınız. Kuyruğun uzunluğunu bulunuz. Kuyruktaki öğeleri sırayla yazdırınız. Kuyruğun önündeki öğeyi çekiniz. [Nil, Amazon, Mississipi, Yangtze, Yenisey] Queue<String> kuyruk = new LinkedList<String>(); kuyruk.offer("nil"); kuyruk.offer("amazon"); kuyruk.offer("missisipi"); kuyruk.offer("yangtze"); kuyruk.offer("yenisey"); Iterator it = kuyruk.iterator(); System.out.println("Kuyruğun uzunluğu :" + kuyruk.size()); System.out.println("Kuyrukta baştan sona doğru sıralı öğeler : "); while (it.hasnext()) { String iteratorvalue = (String) it.next(); System.out.print(",\t" + iteratorvalue); // Kuyruğun sonundaki öğe System.out.println("\n Queue.peek() :" + kuyruk.peek()); // kuyruğun önündeki öğeyi al System.out.println("Queue.poll() :" + kuyruk.poll()); System.out.println("Kuyruğun kalan öğe sayısı :" + kuyruk.size()); Kuyruğun uzunluğu :5 Kuyrukta baştan sona doğru sıralı öğeler :, Nil, Amazon, Missisipi, Yangtze, Yenisey Queue.peek() :Nil Queue.poll() :Nil Kuyruğun kalan öğe sayısı SORU 2 Son beş ilimizi öğe olarak içeren bir LinkedHashSet yapısı kurunuz ve bir iterator ile öğelerini yazdırınız. [Yalova, Karabük, Kilis, Osmaniye, Düzce] 5
LinkedHashSet obj = new LinkedHashSet(); Yalova Karabük Kilis Osmaniye Düzce obj.add("yalova"); obj.add("karabük"); obj.add("kilis"); obj.add("osmaniye"); obj.add("düzce"); Set e = obj; for (Iterator i = e.iterator(); i.hasnext();) { System.out.println(i.next().toString()); SORU 3 {30,20,55,40,10 dizisinde (array) 55 sayısının yerini bulan bir fonksiyon yazınız. static int[] intarr = { 30, 20, 55, 40, 10 ; static void sayıbul(int[] arr, int ara) { int indis = 0; for (int i = 0; i < arr.length; i++) if (ara == arr[i]) indis = i; System.out.println("Aranan sayının indisi : " + indis); sayıbul(intarr, 55); Aranan sayının indisi : 2 SORU 4 HashSet nedir? Bu dönem aldığınız dersleri öğeler olarak içeren bir HashSet yapısı kurunuz. 6
Set set = new HashSet(); set.add("đleri Matematik"); set.add("veri Yapıları"); set.add("olasılık"); set.add("đstatistik Metotları"); System.out.println(); System.out.println(" Set Öğeleri:"); System.out.print("\t" + set); Set Öğeleri: [Olasılık, Đleri Matematik, Veri Yapıları, Đstatistik Metotları] SORU 5 Öğeleri 13.64, 234.89, 28.2, 143.45 olan Double veri tipi depolayan bir ArrayList yaratınız. ArrayList in öğelerini; a. Sırasız (giriş sırasıyla) b. Doğal sırasıyla (büyüklük sıralaması) c. Kesir kısımlarının büyüklüklerine göre sıralayıp yazdıran bir java programı yazınız. import java.lang.double; class ComparatorDemo implements Comparator<Double> { public int compare(double num1, Double num2) { Double d1 = (num1 - num1.intvalue()); Double d2 = (num2 - num2.intvalue()); return d1.compareto(d2); class Uygulama { ArrayList<Double> arraylist = new ArrayList<Double>(); arraylist.add(new Double(13.64)); arraylist.add(new Double(234.89)); arraylist.add(new Double(28.12)); arraylist.add(new Double(143.45)); System.out.println(" Sıralamadan önce : "); System.out.println("\n Doğal sıralamasına göre : "); Collections.sort(arrayList); 7
System.out.println("\n Kesir kısmı büyüklüğüne göre sıralı: "); Collections.sort(arrayList, new ComparatorDemo()); Sıralamadan önce : arraylist = [13.64, 234.89, 28.12, 143.45] Doğal sıralamasına göre : arraylist = [13.64, 28.12, 143.45, 234.89] Kesir kısmı büyüklüğüne göre sıralı : arraylist = [28.12, 143.45, 13.64, 234.89] Puanlar: 1. 20 2. 20 3. 20 4. 20 5. 20 8