BAĞLAÇLI LİSTELER LINKED LISTS

Benzer belgeler
BAĞLAÇLI LİSTELER LINKED LISTS

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

YMT219 VERİ YAPILARI ÖDEV-1

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

KUYRUKLAR. Doç. Dr. Aybars UĞUR

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

YZM 2116 Veri Yapıları

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

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

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

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

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

İ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İ

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

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Yrd. Doç. Dr. Caner ÖZCAN

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

AĞAÇLAR. Doç. Dr. Aybars UĞUR

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

Göstericiler (Pointers)

Ağaç (Tree) Veri Modeli

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

İ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İ

BAĞLI LİSTELER BAĞLI LİSTELER

Pointer Kavramı. Veri Yapıları

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

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.

Arasınav Örnek Soruları Bahar 2018

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

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

SIRALAMA SORTING. Yrd. Doç. Dr. Aybars UĞUR

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

Dizi ( Array ) ve Dizgi ( String )

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

Veri Yapıları Laboratuvarı

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

Yrd. Doç. Dr. Caner ÖZCAN

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

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

YZM 2116 Veri Yapıları

Balon & Banka Teslim tarihi: 17 Kasım 2008

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

Java String İşlemleri

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

C# Çalışma Örnekleri

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

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

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

YZM 2116 Veri Yapıları

JAVADA DİZİ İŞLEMLERİ

Standard Template Library

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:

11- FONKSİYONLAR (FUNCTIONS)

Yrd. Doç. Dr. Caner ÖZCAN

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

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:

Programlama Dilleri 3

İ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İ

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

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

ArrayList Uygulamaları

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

ALGORTMA ve PROGRAMLAMA - II (C# Sürümü) DERS NOTLARI

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

Örnek1: #include <iostream> #include <string> using namespace std;

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

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

BAŞLAYINIZ DENİLMEDEN SORU KİTAPÇIĞINI AÇMAYINIZ.

BIL222 Veri Yapıları ve Algoritmalar

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

YZM 2116 Veri Yapıları

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

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

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

YZM 2116 Veri Yapıları

HASH(KARMA) TABLOSU VERİ YAPISI

Merge Sort Bireşen Sıralama

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

// hataları işaret eden referans

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

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

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

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

Görsel Programlama 1

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

Transkript:

BAĞLAÇLI LİSTELER LINKED LISTS

Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır: Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı ve yaygın olarak kullanılan veri yapılarındandırlar. Programlama açısından liste, aralarında doğrusal ilişki olan veriler topluluğu olarak görülebilir. Yığıt ve kuyrukların genişletilmesi yani üzerlerindeki sınırlamaların kaldırılması ile liste yapısına ulaşılır. Veri yapılarında değişik biçimlerde listeler kullanılmakta ve üzerlerinde değişik işlemler yapılmaktadır. Bağlaçlı Listeler 2

Listeler Üzerindeki Bazı İşlemler ve Tanımları 1. EmptyList(List) : returns Boolean Listenin boş olup olmadığını belirleyen fonksiyon. 2. FullList(List) : returns Boolean Listenin dolu olup olmadığını belirleyen fonksiyon. 3. LengthList(List) : returns integer Listedeki eleman sayısını bulan fonksiyon. 4. InsertElement(List, NewElement) Listeye yeni bir eleman ekleyen fonksiyon. 5. DeleteElement(List, Element) Listeden bir elemanı arayarak çıkartan fonksiyon. 6. DestroyList(List) Listedeki tüm elemanları silerek boş liste bırakan fonksiyon. 7. GetNextItem(List, Element) Etkin elemandan bir sonrakini döndüren fonksiyon 8. RetrieveElement(List, Element, Found) Elemanın listede olup olmadığını bulan ve döndüren fonksiyon Bağlaçlı Listeler 3

Bağlaçlı (Bağlı) Listeler Kendi tipindeki bir yapıyı gösteren bir işaretçi üyesine sahip yapılara self-referential structures adı verilir. Örnek olarak : struct node char info; struct node *next; ; yapısı, info adlı karakter tipli bilgi elemanının yanında, bir düğüm yapısında bir bellek bölgesine işaret eden next işaretçisine sahiptir. Bu tür yapıların arka arkaya birbirine bağlanması mantığı listelerde, yığıtlarda, kuyruklarda ve ağaçlarda oldukça yararlıdır. Bağlaçlı Listeler 4

Doğrusal Bağlaçlı Liste Listedeki her düğümde bir sonraki düğümün adresinin tutulduğu veri yapısı (doğrusal) bağlı liste olarak adlandırılır. Listenin her bir elemanına düğüm (node) adı verilir. Düğümler, bilgi ve bağ (adres) sahalarından oluşmaktadırlar. Bağ sahalarında işaretçiler kullanılmaktadır. Listenin ilk elemanına dışarıdan bir işaretçi (list) ile erişilmektedir. Diğer düğümlere de bağlar yardımı ile ulaşılabilmektedir. Son düğümün sonraki adres (next) sahası NULL değerini içerir. NULL bağı, liste sonunu belirtir. Elemanı olmayan liste boş liste olarak adlandırılır. Herhangi bir boyuta dinamik olarak genişletilip daraltılabilen yığıt ve kuyrukların gerçekleştirimi bağlı listeler üzerinde yapılmaktadır. Bağlaçlı Listeler 5

Yığıt ve Kuyruk Gerçekleştiriminde Bağlaçlı Listeler Yığıtlarda ve kuyrukların gerçekleştiriminde sıralı bellek kullanımının (dizi) en büyük dezavantajı, hiç kullanılmasa veya az kullanılsa bile sabit miktardaki belleğin bu yapılara ayrılmış olarak tutulmasıdır. Ayrıca sabit bellek miktarı aşıldığında da taşma oluşması ve eleman ekleme işleminin yapılamamasıdır. Bağlı listeler üzerinde gerçekleştirildiklerinde ise bu problemler ortadan kalkmaktadır. Bellekten sadece gerektiği kadar yer ayrılmakta ve bellek boyutu bitene kadar bu yapılara ekleme işlemi yapılabilmektedir. Bağlaçlı Listeler 6

Bağlaçlı Liste Veri Yapısı ve Avantajı Bağlı listeler, başka veri yapılarının gerçekleştiriminde kullanılabildikleri gibi kendileri de veri yapısıdırlar. Bağlı listelerde elemanların eklenme ve çıkarılmasında bir sınırlama yoktur. Başa ve sona olduğu gibi araya da eleman eklenebilir; baştan ve sondan olduğu gibi ortadan da eleman çıkarılabilir. Bağlı liste dolaşılarak herhangi bir elemanına erişilebilir. Bir bağlı listenin n. elemanına erişmek için n tane işlem yapmak yani kendinden önceki (n-1) eleman üzerinden geçmek gerekmektedir. Elemanların bellekteki yerleri dizilerdeki gibi sıralı olmadığından elemanlar ve sıraları ile yerleştikleri bellek bölgeleri arasında bir ilişki yoktur. Bağlı listelerin diziler üzerine avantajı, bir grup eleman arasına eleman eklemede ve bir grup eleman arasından eleman çıkarmada ortaya çıkar. Dizilerde bir eleman silerken arada boşluk kalmasını engellemek için ilerisindeki (sağındaki) tüm elemanları bir geriye (sola) kaydırmak gerekir. Eleman eklemede de yer açmak için konulacağı yerdeki ve ilerisindeki elemanları bir ileriye (sağa) kaydırmak gerekecektir. Kaç tane elemanın yer değiştireceği (birer kaydırılacağı) dizi boyutuna bağlı olarak ve eklenecek elemanın yerine bağlı olarak değişecektir. Bağlı listelerde ise eleman ekleme ve çıkarma için yapılan iş liste boyutundan bağımsızdır. Bağlaçlı Listeler 7

Yığıtın Bağlaçlı Liste Gösterimi Eleman Ekleme ve Çıkarma Bağlaçlı Listeler 8

Kuyrukların Bağlaçlı Liste Gösterimi Eleman Ekleme ve Çıkarma Bağlaçlı Listeler 9

Öncelik Kuyruklarının Bağlaçlı Liste Gerçekleştirimi Yöntem 1 : (Sıralı liste tutularak) (Artan sıralı öncelik kuyruğunda) Eleman ekleme, eklenecek elemanın listeyi sıralı tutacak şekilde liste üzerinde dolaşılarak araya eklenmesi şeklinde gerçekleştirilir. Eleman çıkarma da, listenin ilk elemanının (en küçük değer) çıkarılması ile gerçekleştirilir. Yöntem 2 : (Sıralı olmayan liste) (Artan sıralı öncelik kuyruğunda) Eleman ekleme kuyruğun herhangi bir yerine yapılabilir. Eleman çıkarma ise eleman bulunana kadar tüm kuyruk boyunca dolaşılması ve elemanın listeden çıkarılması ile gerçekleştirilir. Öncelik kuyruklarında listelerin sıralanarak kullanımı, sıralanmadan kullanımına göre daha etkindir. Nedenlerini düşününüz! Bağlaçlı Listeler 10

Diğer Bazı Liste Yapıları Dairesel Bağlaçlı Listeler Circular Linked Lists Çift Bağlaçlı Listeler Doubly Linked Lists Dairesel Çift Bağlaçlı Listeler Circular Doubly Linked Lists Bağlaçlı Listeler 11

Dairesel Bağlaçlı Listeler Tüm düğümlerin bir sonraki düğümü gösterdiği bağlı listelerdir. Son elemanın bağı NULL değildir; ilk elemanı gösterir. Böylece dairesel bir yapı oluşur. Bağlaçlı Listeler 12

Çift Bağlaçlı Listeler Her düğümü iki bağ içerdiği bağlı listelerdir. İlk bağ kendinden önceki düğümü gösterirken ikincisi de kendinden sonraki düğümü gösterir. Çift bağlı listelerde, tek bağlı listelerdeki geriye doğru listeleme ve dolaşmadaki zorluklar ortadan kalkar. Bağlaçlı Listeler 13

Dairesel Çift Bağlaçlı Listeler Hem dairesellik hem de çift bağlılık özelliklerine sahip listelerdir. İlk düğümden önceki düğüm son, son düğümden sonraki düğüm de ilk düğümdür. Bağlaçlı Listeler 14

C# Programlama Dilinde Bağlaçlı Liste Örneği ve Kullanımı Bağlaçlı Listeler 15

C# Programlama Dilinde Bağlaçlı Liste Düğüm Sınıfı class Dugum public int veri; // değişik tiplerde çoğaltılabilir public Dugum sonraki; // sonraki düğümün referansı (adresi) public Dugum(int gelenveri) // Yapıcı metot veri = gelenveri; // Düğüm oluşturulurken değerini // aktarır public void yazdir() // Düğümün verisini yazdırır Console.Write(" " + veri); Bağlaçlı Listeler 16

C# Programlama Dilinde Bağlaçlı Liste Sınıfı class BListe // Listenin ilk düğümünün adresini tutar private Dugum bas; public BListe() // Bir BListe nesnesi bas = null; // boş liste olarak açılır. public void listele() // Bağlı Listeyi Baştan Sona Listeler Console.WriteLine(); Console.Write("Bastan Sona Liste : "); Dugum etkin = bas; while (etkin!= null) etkin.yazdir(); etkin = etkin.sonraki; Bağlaçlı Listeler 17

Diğer Bağlaçlı Liste Metotları //Listede anahtar değerini bulur public Dugum bul(int anahtar) Dugum etkin = bas; while (etkin.veri!= anahtar) if (etkin.sonraki == null) return null; else etkin = etkin.sonraki; ; return etkin; public void basaekle(int yenieleman) // Liste başına eleman ekler Dugum yenidugum = new Dugum(yeniEleman); yenidugum.sonraki = bas; bas = yenidugum; public Dugum sil(int anahtar) // Verilen anahtar değerindeki düğümü siler Dugum etkin = bas; Dugum onceki = bas; while (etkin.veri!= anahtar) if (etkin.sonraki == null) return null; else onceki = etkin; etkin = etkin.sonraki; if (etkin == bas) bas = bas.sonraki; else onceki.sonraki = etkin.sonraki; return etkin; Bağlaçlı Listeler 18

BListe sınıfını kullanarak bir bağlaçlı liste oluşturan ve test eden sınıf class Program static void Main(string[] args) // liste adlı bir bağlı liste nesnesi oluşturur BListe liste = new BListe(); liste.basaekle(9); for (int i = 8; i >= 1; --i) liste.basaekle(i); liste.listele(); int deger = 5; Dugum d = liste.bul(deger); if (d == null) Console.WriteLine("\n" + deger + " Listede Yok"); else Console.WriteLine("\n" + deger + " Bulundu"); Ekran Çıktısı : Bastan Sona Liste : 1 2 3 4 5 6 7 8 9 5 Bulundu Dugum s = liste.sil(5); liste.listele(); Bastan Sona Liste : 1 2 3 4 6 7 8 9 Bağlaçlı Listeler 19

Alıştırmalar Tamsayı elemanlardan oluşan bir bağlaçlı liste sınıfına, elemanları küçükten büyüğe sıralı tutacak şekilde eleman ekleyen ekle metodunu yazınız. Aynı metodun listeyi büyükten küçüğe sıralı tutacak sürümünü yazınız. Tamsayı elemanlardan oluşan bir çift bağlaçlı liste sınıfı ile metotlarını (listele, ara, ekle, sil, güncelle) yazınız. Yolcu (ad, soyad, yas) nesnelerinden oluşan, ada göre sıralı bir tek bağlaçlı liste sınıfını ve listele, ara (ada göre), ekle, sil ve güncelle metotlarını yazınız. Bağlaçlı Listeler 20

C# Collections Hazır Linked List Sınıfı LinkedList<int> liste = new LinkedList<int>(); // Listeye Eleman Ekleme liste.addlast(5); liste.addlast(7); liste.addlast(3); liste.addlast(4); liste.addfirst(10); static void Write(IEnumerator<int> e) // Dolaşma while (e.movenext()) int value = e.current; Console.Write(value+" "); Console.WriteLine(); Console.WriteLine(liste.ElementAt(0)); // [] erişimi LinkedList'te yok! // ElementAt() metodu ile erişim var. LinkedList<int>.Enumerator e = liste.getenumerator(); Write(e); LinkedListNode<int> node = liste.find(7); liste.addafter(node, 15); e = liste.getenumerator(); Write(e); Ekran Çıktısı : 10 10 5 7 3 4 10 5 7 15 3 4 21

Eleman Silme liste.remove(15); // 15 değerine sahip düğümü siler. Bağlaçlı Listeler 22

Java Programlama Dilinde Bağlaçlı Liste Örneği ve Kullanımı Bağlaçlı Liste Düğüm Yapısı ve Sınıfı class Dugum public int veri; // değişik tiplerde çoğaltılabilir public Dugum sonraki; // sonraki düğümün referansı (adresi) public Dugum(int gelenveri) // Yapıcı metot veri = gelenveri; // Düğüm yaratılırken değerini // aktarır public void yazdir() // Düğümün verisini yazdırır System.out.print(" "+veri); Bağlaçlı Listeler 23

Bağlaçlı Liste Yapısı ve Sınıfı class BListe // Listenin ilk düğümünün adresini tutar private Dugum bas; public BListe() // Bir BListe nesnesi bas = null; // boş liste olarak açılır. public void listele() // Bağlı Listeyi Baştan Sona Listeler System.out.println(); System.out.print("Bastan Sona Liste : "); Dugum etkin = bas; while(etkin!=null) etkin.yazdir(); etkin=etkin.sonraki; Bağlaçlı Listeler 24

Bağlaçlı Liste Metotları //Listede anahtar değerini bulur public Dugum bul(int anahtar) Dugum etkin = bas; while(etkin.veri!= anahtar) if(etkin.sonraki==null) return null; else etkin = etkin.sonraki; ; return etkin; public void basaekle(int yenieleman) // Liste başına eleman ekler Dugum yenidugum = new Dugum(yeniEleman); yenidugum.sonraki = bas; bas = yenidugum; public Dugum sil(int anahtar) // Verilen anahtar değerindeki düğümü siler Dugum etkin = bas; Dugum onceki = bas; while(etkin.veri!=anahtar) if(etkin.sonraki==null) return null; else onceki = etkin; etkin = etkin.sonraki; if(etkin==bas) bas = bas.sonraki; else onceki.sonraki = etkin.sonraki; return etkin; Bağlaçlı Listeler 25

BListe sınıfını kullanarak bir bağlaçlı liste oluşturan ve test eden sınıf class BListeTest public static void main(string args[]) // liste adlı bir bağlı liste nesnesi yaratır BListe liste = new BListe(); liste.basaekle(9); for(int i=8; i>=1; --i) liste.basaekle(i); liste.listele(); Ekran Çıktısı : // Bastan Sona Liste : 1 2 3 4 5 6 7 8 9 // 5 Bulundu // Bastan Sona Liste : 1 2 3 4 6 7 8 9 int deger = 5; Dugum d = liste.bul(deger); if(d==null) System.out.println("\n"+deger+" Listede Yok"); else System.out.println("\n"+deger+" Bulundu"); Dugum s = liste.sil(5); liste.listele(); Bağlaçlı Listeler 26

Java daki Hazır LinkedList sınıfının import java.util.*; public class LinkedListExample public static void main(string args[]) LinkedList <Integer> liste = new LinkedList<Integer>(); int size; Iterator iterator; // Listeye Eleman Ekleme liste.add(5); liste.add(7); liste.add(3); liste.add(4); size = liste.size(); // Listenin dolaşılması System.out.print( "Elemanlar: "); iterator = liste.iterator(); while (iterator.hasnext()) System.out.print(iterator.next()+" "); System.out.println(); kullanımı // İlk eleman olarak 15 değerini ekleme liste.addfirst(15); listele(liste); // Üçüncü Konuma (2. indise) 25 değerinin eklenmesi liste.add(2,25); listele(liste); public static void listele(linkedlist<integer> liste) Iterator iterator; iterator = liste.iterator(); while (iterator.hasnext()) System.out.print(iterator.next()+" "); System.out.println(); Elemanlar: 5 7 3 4 15 5 7 3 4 15 5 25 7 3 4 Bağlaçlı Listeler 27

Java daki Hazır LinkedList sınıfının kullanımı - Eleman Silme (Devam) int soneleman = liste.removelast(); listele(liste); System.out.println("Son Eleman : " + soneleman); int ikinci = liste.remove(1); System.out.println("İkinci konumdan silinen eleman : " + ikinci); Son Eleman : 4 kinci konumdan silinen eleman : 5 Bağlaçlı Listeler 28