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

Benzer belgeler
Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Yrd. Doç. Dr. Caner ÖZCAN

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

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

Yrd. Doç. Dr. Caner ÖZCAN

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İ

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

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

BIL222 Veri Yapıları ve Algoritmalar

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

Veri Yapıları Laboratuvarı

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

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

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Ağaç (Tree) Veri Modeli

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

YZM 2116 Veri Yapıları

BAĞLAÇLI LİSTELER LINKED LISTS

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

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

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

Genel Programlama II

BAĞLAÇLI LİSTELER LINKED LISTS

Yrd. Doç. Dr. Ümit ATİLA

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

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Özyineleme (Recursion)

YZM 2116 Veri Yapıları

Veri Yapıları ve Algoritmalar

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

HSancak Nesne Tabanlı Programlama I Ders Notları

Genel Programlama II

VERİ YAPILARI VE PROGRAMLAMA

YMT219 VERİ YAPILARI ÖDEV-1

ALGORİTMA VE PROGRAMLAMA II

Fiziksel Veritabanı Modelleme

ALGORİTMA VE PROGRAMLAMA II

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

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

YZM 2116 Veri Yapıları

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

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

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

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

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

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Yrd. Doç. Dr. Caner ÖZCAN

Göstericiler (Pointers)

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

Algoritmalara Giriş 6.046J/18.401J

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

BIP116-H14-1 BTP104-H014-1

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı

BİLG Dr. Mustafa T. Babagil 1

Diziler (Arrays) Çok Boyutlu Diziler

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

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

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

BLM 111 Algoritma ve Programlama I Güz 2018

1 PROGRAMLAMAYA GİRİŞ

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

ALGORİTMA VE PROGRAMLAMA I

Temel Bilgisayar Programlama

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

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

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

YZM 2116 Veri Yapıları

Yrd. Doç. Dr. Caner ÖZCAN

BLM 111 ALGORİTMA VE PROGRAMLAMA I

VERİTABANI. SQL (Structured Query Language)

Yrd. Doç. Dr. Caner ÖZCAN

Otomata Teorisi (BIL 2114)

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Final Sınavı Soruları Bahar 2018

Yrd. Doç. Dr. Caner ÖZCAN

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

AĞAÇ-TREE VERİ YAPISI

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

YZM 2116 Veri Yapıları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

Transkript:

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste

Liste birbiriyle ilişkili verileri içeren bir kümedir, programlama açısından liste en basitinden bir dizi üzerinde tutulur. Dizi elemanları art arda gelen bellek gözlerinde tutulur. Bağlantılı liste ise aynı kümeye ait verilerin birbirlerine bellek üzerinde sanal bağlar ile bağlanması ile oluşur. Bağlantılı listenin zayıf yönü, liste üzerindeki ara elemanlara kolayca erişilememesi ve sık sık arama gerektiren uygulamalarda arama karmaşıklığının göreceli olarak büyük olmasıdır.

Uzunluk: Liste üzerindeki düğümlerin sayısıdır. Anahtar Sözcük: Liste üzerinde arama yapılacağı veya listenin sıralanacağı durumlarda kullanılacak veri parçasıdır. Öncelikli Liste: Listeye yeni verilerin eklenmesi işleminde eklemenin bir bir anahtar değere göre sıralı yapılmasıdır(öğrenci numarasına göre). Boş Liste: Liste veya bağlantılı listenin hiçbir elemanı olmaması; üzerinde hiçbir veri tutulmamasıdır. Bu durumda ilk ve son işaretçilerinde boş anlamında NULL değer tutulur.

Bağlantılı liste türleri: otek Yönlü Bağlantılı Liste Birbirini izleyen düğümler arasında tek-yönlü bir bağlantı vardır. Ekleme, arama, listeleme gibi işlemlerin karmaşıklığı O(n) dir. Listenin oluşturulması için iki tane işaretçi kullanılırsa ekleme karmaşıklığı O(1), arama ve listeleme karmaşıklığı O(n) olur.

Bağlantılı liste türleri: o Çift Yönlü Bağlantılı Liste Düğümler arasındaki bağlantı hem ileri hem de öne doğru ilerleyecek şekilde iki yönlüdür. Yani bir düğüm hem bir sonraki hem de bir önceki düğümü işaret eder. Çift yönlü bağlantılı liste araya ekleme ve silme işlemlerini de kolaylaştırır. Çünkü silinecek düğümün hem arkasındaki hem de önündeki düğüm bilindiği için silmeyi sağlayacak bağlantı düzenlemesi kolayca yapılır.

Bağlantılı liste türleri: oçevrimsel Bağlantılı Liste Düğümler arasında çevrimsel bir bağlantı vardır. Yani listenin son düğümü ilk düğümünü işaret eder. Böylece çevrimsel bir yapı oluşturulur.

Liste ve Bağlantılı Liste

Gereksinimler o İşaretçi değişkenler ve liste için gerekli veri yapısının tanımlanması o Dinamik bellek ihtiyacı Bellek ihtiyaçları malloc() veya benzeri bir fonksiyon ile sağlanır belleğin kullanımının ardından free() veya benzeri bir fonksiyonla bellek kullanımı durdurulabilir.

Dinamik bellek kullanılması sebebiyle tanımlamalar işaretçi kullanılarak gerçekleştirilir. Bağlantılı liste boş iken her iki değerde NULL dur. İlk eleman içi bellekten yer tahsis edilmesi şekilde gösterilmiştir. Oluşturulan elemanı bellek yönetimine geri iade etmek için free(p) fonksiyonunu kullanmak yeterlidir.

Bağlantılı Liste Veri Yapısı struct baglantililiste{ int sayi; struct baglantililiste *arka; }; struct baglantililiste *ilk=null, *son=null; baglantililiste *p; p=(baglantililiste *)malloc(sizeof(struct baglantililiste));

Ekleme işlemi baglantililiste *p=(baglantililiste *)malloc(sizeof(struct baglantililiste)); if(p!=null){ if(ilk==null){ ilk=p; son=p; ilk->arka=null; son->arka=null; }else{ son->arka=p; son=p; p->arka=null; }}

Listeleme İşlemi baglantili *adr =ilk ; while(adr!=null) { cout<<(adr->sayi)<<endl; adr=adr->arka; }

Silme İşlemi baglantili *adr=ilk,*onceki=ilk,*silinecekveri=silinecek; while(adr!=null){ if(adr ==silinecekveri){ onceki->arka=adr->arka; free(adr); Break; } onceki=adr; adr=adr->arka; }