Çiftli bağlı liste oluşturma ve bunun bir döngü ile gerçekleştirilmesi, listenen başına ve sonuna eleman ekleme, ilgili listeden eleman silme örneklerini inceleyebilirsiniz.
Örnek-1: 3 elemanlı çiftli bağlı bir liste oluşturunuz.
using System;
namespaceciftliBagliListe { classProgram { static Ciftli Head; classCiftli { publicint data; public Ciftli next; public Ciftli prev; } staticvoidMain(string[] args) { Ciftli a = new Ciftli(); a.data = 0; a.next = null; a.prev = null;
Ciftli b = new Ciftli(); b.data = 1; a.next = b; b.prev = a; b.next = null;
Ciftli c = new Ciftli(); c.data = 2; b.next = c; c.prev = b; c.next = null;
Head = a;
while (a != null) { Console.WriteLine(a.data); a = a.next; } } } }
Örnek-2: Head, çiftli bağlı listenin ilk elemanına bakmaktadır. 10 elemanlı, veri değeri indis değerine eşit olan çiftli bağlı liste oluşturunuz. Bu listeyi baştan sona ve sondan başa yazdırarak kontrol ediniz.
using System;
namespaceciftliBagliListe_2 { classProgram { static Ciftli Head; classCiftli { publicint data; public Ciftli next; public Ciftli prev; } staticvoidMain(string[] args) { Ciftli a = null; Ciftli x = null; for (int i = 0; i < 10; i++) { a = new Ciftli(); a.data = i; a.next = null; if (Head == null) { Head = a; a.prev = null; x = a; } else { a.prev = x; x.next = a; x = a; } }
x = Head; while (x != null) { Console.WriteLine(x.data); x = x.next; }
Console.WriteLine("-----");
x = a; while (x != null) { Console.WriteLine(x.data); x = x.prev; } } } }
Örnek-3: Head, çiftli bağlı listenin ilk elemanına bakmaktadır. Listenin başına eleman ekleyiniz.
using System;
namespaceciftliBagliListe_3 { classProgram { static Ciftli Head; classCiftli { publicint data; public Ciftli next; public Ciftli prev; } staticvoidMain(string[] args) { Ciftli a = null; Ciftli x = null; for (int i = 0; i < 10; i++) { a = new Ciftli(); a.data = i; a.next = null; if (Head == null) { Head = a; a.prev = null; x = a; } else { a.prev = x; x.next = a; x = a; } } Ciftli b = new Ciftli(); b.data = 1234; b.next = Head; b.prev = null; Head.prev = b; Head = b;
x = Head; while (x != null) { Console.WriteLine(x.data); x = x.next; }
Console.WriteLine("----");
x = a; while(x != null) { Console.WriteLine(x.data); x = x.prev; } } } }
Örnek-4: Head, çiftli bağlı listenin ilk elamanına bakmaktadır. Listenin sonuna 1 eleman ekleyiniz. Listeyi baştan sona ve sondan başa yazdırarak elemanın eklenip eklenmediğini ve çiftli bağlı liste yapısının oluşup oluşmadığını gözlemleyiniz.
using System;
namespaceciftliBagliListe_4 { classProgram { static Ciftli Head; classCiftli { publicint data; public Ciftli next; public Ciftli prev; } staticvoidMain(string[] args) { Ciftli a = null; Ciftli x = null; for (int i = 0; i < 10; i++) { a = new Ciftli(); a.data = i; a.next = null; if (Head == null) { Head = a; a.prev = null; x = a; } else { a.prev = x; x.next = a; x = a; } } Ciftli b = new Ciftli(); b.data = 1234; x.next = b; b.prev = x; b.next = null;
x = Head; while (x != null) { Console.WriteLine(x.data); x = x.next; } } } }
Örnek-5: Head, çiftli bağlı listenin başına bakmaktadır. Çiftli bağlı listeden 5 olan elemanı siliniz. Ardından listenin elemanlarını yazdırarak elemanın silinip silinmediğini kontrol ediniz.
using System;
namespaceciftliBagliListe_5 { classProgram { static Ciftli Head; classCiftli { publicint data; public Ciftli next; public Ciftli prev; } staticvoidMain(string[] args) { Ciftli a = null; Ciftli x = null; for (int i = 0; i < 10; i++) { a = new Ciftli(); a.data = i; a.next = null; if (Head == null) { Head = a; a.prev = null; x = a; } else { a.prev = x; x.next = a; x = a; } }
x = Head; while (x != null) { if (x.data == 5) { x.next.prev = x.next.prev.prev; x.prev.next = x.prev.next.next; } x = x.next; } x = Head; while (x != null) { Console.WriteLine(x.data); x = x.next; } } } }