Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.



Benzer belgeler
Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.

ArrayList Uygulamaları

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

Arasınav Örnek Soruları Bahar 2018

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Class HashSet. Metotlar. Class HashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

ArrayList(int initialcapacity) Sığası (capacity) parametrenin belirlediği sayıda olan bir dizi oluşturur.

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

BIL101 07/11/2012 Lab5 Programlama Sorulari

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Ders - 7 while döngüsü

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Queue (kuyruk) Arayüzü

Örnek 1: Programı yazın ve çalıştırın.

Kılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap

YZM 2116 Veri Yapıları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

YIĞIT STACK. Yrd. Doç. Dr. Aybars UĞUR

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

D İ Z İ L E R A R R A Y S

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS

BİL-141 Bilgisayar Programlama I (Java)

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

JAVADA DİZİ İŞLEMLERİ

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

EMT2226 Nesne Yönelimli Programlamaya Giriş

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

String (Dizgi) İşlemleri

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Insertion Sort. (Sokuşturma Sıralaması)

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

MAT213 Bilgisayar Programlama I

YIĞIT STACK. Doç. Dr. Aybars UĞUR

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

BİL-141 Bilgisayar Programlama I (Java)

YMT219 VERİ YAPILARI ÖDEV-1

// hataları işaret eden referans

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BİL-141 Bilgisayar Programlama I (Java)

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri

Temel Veri Türü İşlemleri

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Class Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler:

KUYRUKLAR. Doç. Dr. Aybars UĞUR

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Klavyeden Basit Giriş/Çıkış İşlemleri

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

BİL132 Bilgisayar Programlama II

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

Sınav Dağılım & IMKB Endeks

Java String İşlemleri

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

Dağıtık Sistemler CS5001

M.ilkucar MAKU MYO 1

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

YZM 2116 Veri Yapıları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Görsel Programlama (Visual Programming)

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

Operator Aşırı Yükleme (Operator OverLoading)

BİL-141 Bilgisayar Programlama I (Java)

Karşılaştırma İşlemleri ve Koşullu İfadeler

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

BM-209 Nesne Yönelimli Programlama

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

BİL-141 Bilgisayar Programlama I (Java)

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Transkript:

Stack Sınıfı (yığıt) java.util Class Stack<E> java.lang.object java.util.abstractcollection<e> java.util.abstractlist<e> java.util.vector<e> java.util.stack<e> Stack (yığıt) sınıfı nesnelerin LIFO (last-input-first-output) yapısıyla depolanmasını sağlayan bir veri tipidir. Bilgisayar uygulamalarında çok sık kullanılır. Üst üste konulmuş kutular gibidir. Yani gelen kutu en üste konur. Alttaki ya da aradaki bir kutuyu almak için, en üsttekinden başlayarak, istenen kutuya kadar üsttekileri sırayla almak gerekir. Stack sınıfının, boş bir stack (yığıt) yaratan bir tek kurucusu vardır: Stack() Yığın ilk yaratıldığında boştur; ona öğeler push() metodu ile eklenir. Stack Sınıfının Metotları boolean empty() Yığıtın boş olup olmadığını söyler. Yığıt boşsa true değerini verir.. E peek() Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır. E pop() Yığıtın en üstündeki öğeyi değer olarak alır ve onu yığıttan siler. E push(e item) Verilen nesneyi yığıtın üstüne koyar. int search(object o) Verilen nesnenin yığıtta kaçıncı öğe olduğunu söyler. Saymaya en alttakinden 1 diye başlar. Aşağıdaki program bir yığıt (stack) yaratıyor. 1

Örnek 1: public class Stack01 { Stack stack = new Stack(); stack.push("londra"); stack.push("moskova"); stack.push("ankara"); stack.push("paris"); stack.push("viyana"); System.out.println(stack); System.out.println(stack.search("Ankara")); System.out.println(stack.peek()); System.out.println(stack.pop()); System.out.println(stack); [Londra, Moskova, Ankara, Paris, Viyana] 3 Viyana Viyana [Londra, Moskova, Ankara, Paris] Açıklamalar: push() metodu ile yığıta 5 öğe giriliyor. Search() metodu Ankara öğesinin yığıtta alttan üste doğru 3-üncü öğe olduğunu söylüyor. peek() metodu ile yığıtın en üstündeki Viyana okunuyor. pop() metodu ile yığıtın en üstündeki Viyana öğesini siliyor. Aşağıdaki program bir yığıt yaratıyor. Örnek 2: private LinkedList list = new LinkedList(); public void push(object v) { list.addfirst(v); public Object top() { return list.getfirst(); public Object pop() { return list.removefirst(); 2

LinkedList01 stack = new LinkedList01(); for (int i = 0; i < 10; i++) stack.push(new Integer(i)); for (int i = 0; i < 10; i++) System.out.print(" " + stack.pop()); 9 8 7 6 5 4 3 2 1 0 Açıklamalar: Önceki örnekten farklı olarak, burada liste Stack sınıfı ile değil, LinkedList sınıfı ile yaratıldığı için, push() ve pop() metotlarını ayrıca tanımlamak gerekmiştir. Tanımlanan push() metodu for döngüsü ile listeye 0, 1, 2,,3, 4, 5, 6, 7, 8, 9 öğelerini giriyor. Sonra, tanımlanan pop() metodu for döngüsü ile listenin sonundan, sırasıyla 9 8 7 6 5 4 3 2 1 0 öğelerini siliyor. Aşağıdaki program boş bir yığıt yaratıyor. Kullanıcı istediği verileri ekliyor ve siliyor. Örnek 2: import java.util.stack; import java.util.scanner; import java.util.iterator; public static void stacktest{ Stack<Integer> integerstack = new Stack<Integer>(); while (true) { System.out.println("****************************"); System.out.println("Lütfen seçiniz:"); System.out.println("1 -- Yığıta bir tamsayı ekle"); System.out.println("2 -- Yığıtın üstündeki öğeyi sil"); System.out.println("3 -- Yığıtı yazdır"); System.out.println("4 -- Çık"); Scanner in = new Scanner(System.in); Integer input = in.nextint(); System.out.println("Seçiminiz: " + input); System.out.println("****************************"); if (input == 1) { System.out.println("Bir tamsayı giriniz: "); Scanner pushin = new Scanner(System.in); 3

Integer topush = pushin.nextint(); integerstack.push(topush); System.out.println("Girilen: \"" + topush + "\" push() ile girildi."); else if (input == 2) { System.out.println("Öğe: \"" + integerstack.pop() + "\" Yığıtın üstünden alındı"); else if (input == 3) { System.out.println("Yaz"); System.out.println("Uzunluk:=" + integerstack.size()); for (int i = integerstack.size(); i > 0; i--) { System.out.println("****\t" + integerstack.elementat(i - 1) + "******"); else if (input == 4) { System.out.println("Hoşça kal!"); System.exit(0); else { System.out.println("Geçersiz seçim"); public static void main(string args[]) { runintegerstacktest(); Örnek 3: Aşağıdaki program Stack içinde 33 sayısını arayıp bulmaktadır. Bunun için boolean contains( Obj ) metodunu kullanmaktadır. Bu metot bir koleksiyonda aranan bir öğenin olup olmadığını bildirir. Metot boolean değer alır: Aranan öğe bulunursa true, değilse false değerini alır. Stack st = new Stack(); st.add("11"); st.add("22"); st.add("33"); st.add("44"); st.add("55"); st.add("66"); st.add("77"); 4

st.add("88"); st.add("99"); st.add("100"); if (st.contains("33")) System.out.println("Aranan öğe bulundu!"); Aranan öğe bulundu! 5