Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Adaugarea unui nod la sfarsitul listei inlantuite

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

Your email address will not be published. Required fields are marked *

*