Öğr. Gör. Dr. Alper VAHAPLAR 2014 – 2015 Ahmet Bursalı (Çalışmıyor? Stackler Ters) Yakup Deniz Yamaç (Array sıralama) Deniz Kovancı (Hani Stack???) Doğukan Yıldırım (Çalışmıyor? Array sıralama) Enes Genç (Stack’i kendimiz oluşturalım. Hani sıralama?) Oya Çakmak (Array sıralama) Umut Dede (Array sıralama) Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 2 1 Kullanıcının gireceği 10 adet sayıyı stack(ler) kullanarak sıralayın… void ekle(int sayi) { if (a_top==0) push_a(sayi); else { if ((a[ttop-1]<=sayi)) push_a(sayi); else { while ((a_top>0) && (a[a_top-1]>sayi)) push_b(pop_a()); push_a(sayi); while (b_top>0) push_a(pop_b()); } } } Alper VAHAPLAR Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 3 BİL2001-Algoritmalar ve Veri Yapıları 4 2 Aynı kümeye ait verilerin bellekte birbirlerine sanal olarak bağlanmasıyla oluşturulur. Liste içerisindeki elemanların kendi değerlerine ek olarak bir de bağlantı bilgisinin kaydedilmesi ile sağlanır. Bağlantı bilgisi bir sonraki elemanın adresidir. Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 5 Linked List (Bağlı Liste) Veri Modeli Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 6 3 Listenin başlangıç (ilk) elemanı (head) Ara düğümlere doğrudan erişim yok. Herhangi bir düğüme erişmek için ilk düğümden başlayarak diğer düğümlere gidilebilir. Bazı durumlarda son düğümü işaretlemek faydalıdır. Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 7 Linked List Türleri Tek yönlü (One way Linked) Linked List Çift Yönlü (Doubly) Linked List Dairesel (Circular) Linked List Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 8 4 Linked List İşlemleri Oluşturma Arama Ekleme Silme Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 9 Linked List İşlemleri Oluşturma struct liste { int veri; struct liste *sonraki; }; struct liste *bas=NULL; Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 10 5 Linked List İşlemleri Ekleme (Insert) Başa Sona Araya Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 11 Ekleme (Insert) void ekle (int deger) { if (bas==NULL) { bas=(struct liste *) malloc (sizeof(struct liste)); bas->veri=deger; bas->sonraki=NULL; } else { liste *dugum=bas; while (dugum->sonraki != NULL) dugum=dugum->sonraki; struct liste *yeni; yeni=malloc(sizeof(struct liste)); yeni->veri=deger; yeni->sonraki=NULL; dugum->sonraki=yeni; } } Alper VAHAPLAR BİL2001-Algoritmalar ve Veri Yapıları 12 6
© Copyright 2024 Paperzz