Bu yazıda, veri yapılarında başlangıç olarak gösterilen bağlı liste (linked list) konusuna bakacağız.
Bağlı listeler adından anlaşılacağı gibi birbirine bağlı verilerden oluşan sıralı listelerdir. Konuyu daha iyi anlamak için bir örnek üzerinden gideceğiz.
/*
Alper ÖZSÖYLER
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct node{
int data;
node *next;
};
int eleman (node *root, int sayi){
node *iter;
iter=root;
int i;
if(sayi<0)
printf("Lutfen 0'dan buyuk sayi giriniz!\n");
else if(sayi==1)
return root->data;
else
{
i=2;
while(iter->next!=NULL)
{
if(i==sayi)
return iter->next->data;
iter=iter->next;
i++;
}
printf("Bu siradaki sayi mevcut degildir!\n");
return -1;
}
}
main()
{ node *root=(node *)malloc(sizeof(node));
root->data=10;
node *iter=root;
root->next=NULL;
for(int i=15;i<=55;i+=5)
{
iter->next=(node *)malloc(sizeof(node));
iter->next->data=i;
iter=iter->next;
iter->next=NULL;
}
iter=root;
while(iter!=NULL)
{
printf("%d\n",iter->data);
iter=iter->next;
}
int sayi;
printf("Sira sayisini giriniz: ");
scanf("%d",&sayi);
printf("\n%d. siradaki eleman: %d'dir.\n",sayi,eleman(root,sayi));
getch();
}
//node; düğümdür yani bağlı listelerde her bir düğüme node adı verilir
//root; bağlı listenin kökü, başlangıcı anlamında kullanılır.
//iter; iterasyon - devamı anlamındadır.
//data; bağlı listede olan veri (burada sayı)
Yukarıdaki kodlardan anlaşılacağı gibi; for döngüsünde 15’den 55’e kadar beşer beşer artan sayılar bir bağlı listede toplanıyor. Daha sonra kullanıcı bağlı listede istediği sıradaki veri (elemanı) çağırıyor.
Bu yazımızda veri yapıları derslerinde ve kitaplarında öncelikli olarak gösterilen bağlı listeleri (linked lists) inceledik. Sorularınız ve yorumlarınızı bekliyorum. Hepinize mutlu günler dilerim. J