Sunum

Öğ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