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