Algoritmalar

Bağlı Liste

Veri Yapıları O(n) search O(n)

İşaretçilerle zincirlenmiş düğümler: başa O(1) ekleme, arama ya da silme için sırayla gezinme.

baş
27
5
12
NULL

Kodu adım adım izlemek için bir işlem seçin.

DeğişmezHer düğüm sonrakini gösterir; head tek giriş noktasıdır, bu yüzden başa ekleme O(1) iken indeksle erişim değildir.

linked-list.c
typedef struct Node {
int data;
struct Node *next;
} Node;
Node *pushFront(Node *head, int value) {
Node *node = malloc(sizeof(Node));
node->data = value;
node->next = head;
return node;
}
Node *removeValue(Node *head, int value) {
if (head == NULL) return NULL;
if (head->data == value) {
Node *rest = head->next;
free(head);
return rest;
}
head->next = removeValue(head->next, value);
return head;
}

Bağlı Liste nasıl çalışır?

Her düğüm bir değer ve sonrakine işaretçi tutar. Rastgele erişim yoktur — k. elemana k bağlantı yürüyerek ulaşılır — ama başa ekleme tek işaretçi değişimidir.

En iyi durum

Baştan ekleme/çıkarma: O(1).

En kötü durum

Değere göre arama veya silme: O(n) yürüyüş.

Ne zaman kullanılır?

Uçlarda sık ekleme/silme, bilinmeyen boyut veya hash tablolarının zincirleri.