Yrd. Doç. Dr. Caner ÖZCAN

Benzer belgeler
Yrd. Doç. Dr. Caner ÖZCAN

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

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

YZM 2116 Veri Yapıları

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

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

Veri Yapıları Laboratuvarı

Yrd. Doç. Dr. Caner ÖZCAN

YZM 2116 Veri Yapıları

Yrd. Doç. Dr. Caner ÖZCAN

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

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

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

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

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

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

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

ALGORİTMA VE PROGRAMLAMA II

Pointer Kavramı. Veri Yapıları

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

Yrd. Doç. Dr. Caner ÖZCAN

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

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

YZM 2116 Veri Yapıları

Çok Yollu Ağaçlar: B*-Trees B*-Trees

BAĞLAÇLI LİSTELER LINKED LISTS

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

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

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

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

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

BIL222 Veri Yapıları ve Algoritmalar

Ağaç (Tree) Veri Modeli

ALGORİTMA VE PROGRAMLAMA II

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

BAĞLAÇLI LİSTELER LINKED LISTS

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

VERİ YAPILARI VE PROGRAMLAMA

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

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

Malloc () ve Free() fonksiyonları

8. İŞARETCİLER (POINTERS)

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

Diziler (Arrays) Çok Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA II

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste

C++ ile Nesneye Dayalı Programlama

YZM 2116 Veri Yapıları

ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I

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

Göstericiler (Pointers)

Genel Programlama II

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

Yrd. Doç. Dr. Caner ÖZCAN

Eln 1002 Bilgisayar Programlama II

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

Programlama Dilleri 1. Ders 4: Diziler

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

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

1 PROGRAMLAMAYA GİRİŞ

Pointers (İşaretçiler)

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

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Yrd. Doç. Dr. Caner ÖZCAN

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

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

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

Fiziksel Veritabanı Modelleme

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

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

ALGORİTMA VE PROGRAMLAMA II

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

BTP 205 İŞLETİM SİSTEMLERİ

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

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

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

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

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

SORGULAR VE ÇEŞİTLERİ II

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Alıştırma 1: Yineleme

MS Access. üzerinde. defa çalıştırıldığında

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Bölüm 4: DDL Veri Tanımlama Dili

Ağaçlar(Trees) AĞAÇ VERİ MODELİ

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Transkript:

Yrd. Doç. Dr. Caner ÖZCAN

BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini bilmek algoritmaların çalışma zamanı karmaşıklığı, kapladığı alan karmaşıklığı yönlerini düşünmenize yardımcı olur. Bağlı listeler işaretçilerin anlaşılması ve algoritmaların işaretçiler ile birleşimi için iyi bir yöntemdir. 2

BAĞLI LİSTELER Bağlı liste çalışma zamanı sırasında değişebilen bir veri yapısıdır. Ardışık elemanlar pointer ile bir birine bağlanır. Son eleman NULL değeri gösterir. Programın çalışması sırasında boyutu istenildiği şekilde büyüyebilir veya küçülebilir. Bellek israfı yoktur. 3

DİZİLER vs. BAĞLI LİSTELER Diziler aşağıdaki hususlarda uygundur: En sona eleman ekleme ve en sondan eleman silme Rasgele her hangi bir elemana erişme Belirli bir değer için arama yapma Bağlı listeler aşağıdaki hususlarda uygundur: Eleman ekleme Eleman silme Sıralı erişim gerektiren uygulamalar Eleman sayısının önceden tahmin edilemediği durumlar 4

Liste Tipleri Bağlantıların yapılış biçimlerine göre listeler birkaç tiptir. 1- Doğrusal bağlı listeler 5

Liste Tipleri 2- Dairesel bağlı listeler Son eleman listenin ilk elemanını gösterir. 6

Liste Tipleri 3- İki bağlı listeler Komşu düğümler arasında iki yönde de bağlantı kurulur. Liste içerisinde hem ileri hem de geri yönde hareket edilebilir. 7

Bağlı Listeler Liste soyut bir veri tipidir. Bu veri tipi programcı tarafından tasarlanır. int, float gibi veri tiplerinden daha karmaşık yapıdadır. Listelerde genel amaç; 8

Bağlı Listelerde Temel İşlemler Liste oluşturma Listede dolaşma Listeye eleman ekleme Listeden eleman silme İki listeyi birleştirme 9

Bağlı Listeler Listedeki bir düğümün yapısının şu şekilde olduğunu düşünelim: 10

Doğrusal Liste Oluşturma İlk önce bir düğüm oluşturulmalı ve head in bu düğümü göstermesi sağlanmalıdır. no name next age 11

Doğrusal Liste Oluşturma Eğer başlangıç bağlı listesinde N adet düğüm olacaksa: N adet kayıt için teker teker hafızadan yer ayır. Kayıtların alan bilgileri girilir. Kayıtların bağlantıları düzenlenir böylece zincir kurulur. 12

Doğrusal Liste Oluşturma 13

Doğrusal Listede Dolaşma Liste oluşturulduktan sonra ve head düğümü listenin ilk düğümünü gösterir hale gelince: Pointer ları takip et. Düğümlere sıra geldikçe onların içeriklerini yazdır. Sıradaki pointer NULL değeri gösteriyorsa dur. 14

Doğrusal Listede Dolaşma 15

Listeye Düğüm Ekleme Ekleme için: Yeni kayıt oluşturulur. Yeni kaydın sonraki göstericisi kendinden bir sonra gelecek kaydı gösterecek şekilde ayarlanır. Yeni kayıttan önceki kaydın sonraki göstericisi yeni kaydı gösterecek şekilde ayarlanır. Belli bir düğümden önce düğüm ekleme biraz daha karışıktır. Burada anahtar olarak isimlendirilen bir değer kullanılır. Bizim örneğimizde anahtar alan «numara» olabilir. 16

Listeye Düğüm Ekleme 17

Listeye Düğüm Ekleme Düğüm başa ekleniyorsa Sadece bir tane «next» göstericisi değiştirilir. Head, yeni düğümü gösterecek şekilde ayarlanır. Yeni düğüm daha önce ilk düğüm olan düğümü gösterir. Düğüm sona ekleniyorsa İki tane «next» göstericisi değiştirilir. Son düğüm artık yeni düğümü gösterir. Yeni düğüm NULL gösterir. Düğüm araya ekleniyorsa İki tane «next» göstericisi değiştirilir. Yeni düğüm önceki düğümün sonrakini gösterir. Önceki düğüm artık yeni düğümü gösterir. 18

Listeye Düğüm Ekleme 19

Listeye Düğüm Ekleme 20

Listeden Düğüm Silme Silinecek düğümden bir önceki düğümün sonraki göstericisi değiştirilerek silinecek düğümden sonraki düğümü göstermesi sağlanır. 21

Listeden Düğüm Silme Belli bir düğümü silmek için (numara bilgisi verilen düğüm): 3 durum söz konusudur. Silinecek düğüm ilk düğüm olabilir Silinecek düğüm son düğüm olabilir. Silinecek düğüm arada bir düğüm olabilir. 22

Listeden Düğüm Silme 23

Listeden Düğüm Silme 24

Main Fonksiyonu 25

26