Tekli Bağlı Listeler

Tekli bağlı liste oluşturma ve bunun bir döngü ile gerçekleştirilmesi, listenin başına ve sonuna eleman ekleme, listenin elemanlarını yeni tekli bağlı listeye tersten ekleme gibi bir çok örneği inceleyebilirsiniz.

Örnek 1

4 elemanlı bir tekli bağlı liste oluşturunuz.

Çözüm 1

using System;

namespace tekliBagliListe
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = new Tekli();
a.data = 5;
a.next = null;

Tekli b = new Tekli();
b.data = 1;
a.next = b;
b.next = null;

Tekli c = new Tekli();
c.data = 2;
b.next = c;
c.next = null;

Tekli d = new Tekli();
d.data = 8;
c.next = d;
d.next = null;

Head = a;
while (a != null)
{
Console.WriteLine(a.data);
a = a.next;
}
}
}
}

Örnek 2

Head, tekli bağlı listenin ilk elemanına bakmaktadır.
Bu listeye 10 adet blok ekleyiniz ve veri değerleri indis değerlerine eşit olsun.
Ardından listenin tüm elemanları yazdırınız.

Çözüm 2

using System;

namespace tekliBagliListe_2
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 10; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}

Örnek 3:

Head, tekli bağlı listenin ilk elemanına bakmaktadır. Listenin başına 1 eleman ekleyiniz.
Ardından listenin tüm elemanlarını yazdırarak kontrol ediniz.

Çözüm 3


using System;

namespace tekliBagliListe_3
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 10; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;

Tekli yeni = new Tekli();
yeni.data = 1234;
yeni.next = x;

Head = yeni;
while (yeni != null)
{
Console.WriteLine(yeni.data);
yeni = yeni.next;
}
}
}
}

Örnek 4:

Head, tekli bağlı listenin ilk elemanına bakmaktadır. Listenin sonuna 1 eleman ekleyiniz.
Ardından listenin elemanlarını yazdırarak kontrol ediniz.

Çözüm 4


using System;

namespace tekliBagliListe_4
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 10; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}

Tekli yeni = new Tekli();
yeni.data = 1234;
yeni.next = null;
x.next = yeni;

x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}

Örnek 5:

Head, tekli bağlı listenin ilk elemanına bakmaktadır. Tüm elemanlarını yeni listeye tersten ekleyiniz.
Ardından listeyi yazdırarak tersten ekleme işleminin başarılı bir şekilde sonuçlandığını gözlemleyiniz.

Çözüm 5

using System;

namespace tekliBagliListe_5
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = new Tekli();
a.data = 1;
a.next = null;

Tekli b = new Tekli();
b.data = 2;
a.next = b;
b.next = null;

Tekli c = new Tekli();
c.data = 3;
b.next = c;
c.next = null;

Tekli d = new Tekli();
d.data = 4;
c.next = d;
d.next = null;

Head = a;
Tekli last = null;
while (a != null)
{
Tekli x = new Tekli();
x.data = a.data;
x.next = last;
last = x;
a = a.next;
}

while (last != null)
{
Console.WriteLine(last.data);
last = last.next;
}
}
}
}

Örnek 6:

Head, tekli bağlı listenin ilk elemanına bakmaktadır. Veri değeri 5 olan bloğu siliniz.
Ardından listenin tüm elemanlarını yazdırarak verinin silinmiş olduğunu gözlemleyiniz.

Çözüm 6

using System;

namespace tekliBagliListe_6
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 10; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
while (x != null)
{
if (x.next == null) break;
if (x.next.data == 5)
{
x.next = x.next.next;
}
else {
x = x.next;
}
}

x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}

Örnek 7

Head, tekli bağlı listenin ilk bloğuna bakmaktadır. İlk elemanını siliniz.
Listenin tüm elemanlarını yazdırarak elemanın silindiğini gözlemleyiniz.

Çözüm 7

using System;

namespace tekliBagliListe_7
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 10; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
// İlk elemanın silinmesi
Head = Head.next;
x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}

Örnek 8

Head, tekli bağlı listenin ilk bloğuna bakmaktadır. Son elemanını siliniz.
Listenin tüm elemanlarını yazdırarak son elemanın silindiğini gözlemleyiniz.

Çözüm 8

using System;

namespace tekliBagliListe_8
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 10; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
while (x.next.next != null)
x = x.next;
x.next = null;

x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}

Örnek 9

Head, tekli bağlı listenin ilk bloğuna bakmaktadır. Listede kaç eleman vardır?

Çözüm 9

using System;

namespace tekliBagliListe_9
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}

static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 100; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
int adet = 0;
while (x != null)
{
adet++;
x = x.next;
}
Console.WriteLine(adet);
}
}
}

Örnek 10

Head, tekli bağlı listenin ilk elemanına bakmaktadır. Listede veri değeri 66 olan kaç blok vardır?

Çözüm 10

using System;

namespace tekliBagliListe_10
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 100; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
int adet = 0;
while (x != null)
{
if (x.data == 66) adet++;
x = x.next;
}
Console.WriteLine(adet);
}
}
}

Örnek 11

Head, tekli bağlı listenin ilk elemanına bakmaktadır.
Listenin içerisinde veri değeri 7 olan bloktan sonra yeni bir blok ekleyiniz.
Ardından listenin tüm elemanlarını yazdırarak bloğun eklenip eklenmediğini kontrol ediniz.

Çözüm 11

using System;

namespace tekliBagliListe_11
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 100; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
while (x != null)
{
if (x.data == 7)
{
Tekli yeni = new Tekli();
yeni.data = 123;
yeni.next = x.next;
x.next = yeni;
}
x = x.next;
}
x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}

Örnek 12

Head, tekli bağlı listenin ilk elemanına bakmaktadır. Veri değeri 7 olan bloktan önceki bloğu siliniz.
Ardından listenin elemanlarını yazdırarak bloğun silinip silinmediğini kontrol ediniz.

Çözüm 12

using System;

namespace tekliBagliListe_12
{
class Program
{
static Tekli Head;
class Tekli
{
public int data;
public Tekli next;
}
static void Main(string[] args)
{
Tekli a = null;
Tekli x = null;
for (int i = 0; i < 100; i++)
{
a = new Tekli();
a.data = i;
a.next = null;
if (Head == null)
{
Head = a;
x = a;
}
else
{
x.next = a;
x = a;
}
}
x = Head;
while (x != null)
{
if (x.next == null || x.next.next == null) break;
if (x.next.next.data == 7)
x.next = x.next.next;
x = x.next;
}
x = Head;
while (x != null)
{
Console.WriteLine(x.data);
x = x.next;
}
}
}
}