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.
- listede tek düğüm var ise
- 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)