Sa se adauge un nod la sfarsitul unui liste inlantuite.
Analiza Programului
Listele simplu inlantuite sunt structuri de date dinamice, care, spre deosebire de vectori, nu sunt alocate ca blocuri de memorie omogene, ci ca elemente separate de memorie. Fiecare nod va contine adresa urmatorului nod si informatia utila. In acest mod, accesul la elementele listei se va face secvential.
Inserarea unui element se poate face la inceputul, la sfarsitul listei sau dupa un anumit nod, deja existent. Inserarea unui element la sfarsitul listei necesita verificarea conditiei pentru lista vida, parcurgerea acesteia si legarea elementului.
public class LinkedList
{
Node head;
Node current;
//Adaugarea unui element la sfarsitul listei
public void AddLast(string val)
{
//alocare si initializare noul nod
Node newNode = new Node(val);
newNode.Next = null;
//daca lista este vida, modificam doar capul listei
if (head == null)
head = newNode;
else
{
current = head;
//parcurgem lista pana la ultimul nod
while (current.Next != null)
{
current = current.Next;
}
//adaugam elementul nou in lista
current.Next = newNode;
}
}
public void PrintNodes()
{
while (head != null)
{
//se prelucreaza informatia utila
Console.WriteLine(head.Data);
//se trece la urmatorul nod
head = head.Next;
}
}
}
Test:
class Program
{
static void Main(string[] args)
{
LinkedList lst = new LinkedList();
lst.AddFirst("Nod1");
lst.AddFirst("Nod2");
//acesta va fi ultimul nod
lst.AddLast("Nod3");
lst.AddFirst("Nod4");
lst.AddFirst("nod5");
lst.PrintNodes();
Console.ReadLine();
}
}
Category: Uncategorized