Doğrusal Liste Ekleme Silme Ekrana Yazdırma C

Doğrusal Listeler: Ekleme, Silme ve Ekrana Yazdırma

Giriş

Doğrusal listeler, verileri sıralı bir şekilde depolayan temel bir veri yapısıdır. Her öğe, bir sonraki öğeye işaret eden bir bağlantı içerir ve bu da liste boyunca ilerlemeyi sağlar. Doğrusal listeler, çeşitli uygulamalarda kullanılır, örneğin:

  • Alışveriş listeleri
  • Görev listeleri
  • Veri kuyrukları
  • Yığınlar

Bu makalede, C programlama dilinde doğrusal listelerin nasıl oluşturulacağını, öğe ekleme ve silme işlemlerinin nasıl gerçekleştirileceğini ve listenin içeriğinin nasıl ekrana yazdırılacağını inceleyeceğiz.

Doğrusal Liste Yapısı

C’de bir doğrusal liste, aşağıdaki yapıyı kullanarak tanımlanır:

c
struct node {
int data;
struct node *next;
};

  • data öğenin değerini depolar.
  • next bir sonraki öğeye işaret eden bir bağlantıdır.

Liste Oluşturma

Bir doğrusal liste oluşturmak için aşağıdaki adımları izleyin:

  1. Başlangıçta liste boştur, bu nedenle head ve tail işaretçileri NULL‘a ayarlanır.
  2. Yeni bir düğüm oluşturun ve data alanına bir değer atayın.
  3. Yeni düğümü listenin sonuna ekleyin.

Öğe Ekleme

Listeye bir öğe eklemek için aşağıdaki adımları izleyin:

  1. Yeni bir düğüm oluşturun ve data alanına bir değer atayın.
  2. Listenin boş olup olmadığını kontrol edin.
  3. Boşsa, yeni düğüm hem head hem de tail işaretçilerine atanır.
  4. Boş değilse, yeni düğüm tail işaretçisinin işaret ettiği düğümün next alanına atanır ve tail işaretçisi yeni düğüme ayarlanır.

Öğe Silme

Listeden bir öğe silmek için aşağıdaki adımları izleyin:

  1. Silinecek öğeyi içeren düğümü bulun.
  2. Önceki düğümün next alanını, silinecek düğümün next alanına ayarlayın.
  3. Silinecek düğümü serbest bırakın.

Listeyi Ekrana Yazdırma

Listenin içeriğini ekrana yazdırmak için aşağıdaki adımları izleyin:

  1. head işaretçisinden başlayarak liste boyunca yineleyin.
  2. Her düğümün data alanını ekrana yazdırın.

Örnek Kod

Aşağıdaki C kodu, doğrusal bir liste oluşturma, öğe ekleme, silme ve listeyi ekrana yazdırma işlemlerini göstermektedir:

“`c

include

include

struct node {
int data;
struct node *next;
};

struct node head = NULL;
struct node
tail = NULL;

void insert(int data) {
struct node new_node = (struct node )malloc(sizeof(struct node));
new_node->data = data;
new_node->next = NULL;

if (head == NULL) {
    head = new_node;
    tail = new_node;
} else {
    tail->next = new_node;
    tail = new_node;
}

}

void delete(int data) {
struct node current = head;
struct node
previous = NULL;

while (current != NULL) {
    if (current->data == data) {
        if (previous == NULL) {
            head = current->next;
        } else {
            previous->next = current->next;
        }
        free(current);
        break;
    }
    previous = current;
    current = current->next;
}

}

void print() {
struct node *current = head;

while (current != NULL) {
    printf("%d ", current->data);
    current = current->next;
}
printf("\n");

}

int main() {
insert(10);
insert(20);
insert(30);
insert(40);

print(); // 10 20 30 40

delete(20);

print(); // 10 30 40

return 0;

}
“`

Faydalı Kaynaklar


Yayımlandı

kategorisi