C#’da bağlı listeden düğüm silme

C# dilinde bir bağlı liste (linked list) yapısında düğüm silme  (delete) işleminde kontroller ve yapılacak işler şu şekildedir:

  • İlk olarak, listede silinecek düğüm aranır.
  • silinecek düğüm ilk düğüm ise
    • listede tek düğüm var ise
      • bağlı liste işaretçilerine NULL değer atanır. Listede artık eleman yoktur..
    • listede birden fazla düğüm var ise
      • listenin başını gösteren işaretçi bir sonraki düğüme taşınır. Böylece baştaki düğüm koparılarak atılır.
  • silinecek düğüm ilk düğüm değil ise
    • silinecek düğümün öncesinin bağlantısı, silinecek düğümün sonrasına bağlanır. Böylece silinecek düğüm aradan çıkarılmış olur.

C# dilinde tek yönlü bir bağlı listede (linked list) silme (delete) işlemi için örnek kodlar şu şekildedir:

Veri yapısı (Data Structure)

class Node

{

public string nodeValue;

public Node nextNode;

}

Silme fonksiyonu (delete function)

public nodeDeleting(Node deleting)

{

Node dg = firstNode;

Node prevNode= null;
while (dg != null)

{

if (dg.nodeValue== deleting.nodeValue)

{

break;

}

prevNode = dg;

dg = dg.nextNode;
}
if (dg!=null)

{

if (prevNode==null)

{

if (firstNode==lastNode)

{

firstNode= null;

lastNode= null;
}

else

{

firstNode= firstNode.nextNode;

}

}

else

{

prevNode.nextNode= dg.nextNode;

if (prevNode.nextNode==null)

{

lastNode= prevNode;

}

}
return 1;

}

else

{

return 0;

}
}

Diğer konular için;

Düğümleri listeleme (listing nodes)
Düğüm arama (searching node)
Dürüm ekleme (add node)

Kağan Murat Geliştirici on 5 Ocak 2016 yazdı
Yorum Ekle
  • 1 Yanıt(lar)

    Güzel anlatım için teşekkürler…

    Mehmet BAYĞIN Üye on 5 Ocak 2016 yanıtladı
    Yorum Ekle
  • Yanıtınız

    Cevabınızı göndererek Gizlilik Politikası ve Hizmet Şartlarını kabul ediyorsunuz.