1171 – FȘterge Primul Din Listă

From Bitnami MediaWiki
Revision as of 04:00, 1 April 2024 by Cristina94 (talk | contribs) (Pagină nouă: ==Enunţ== Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos: struct nod{ int info; nod * urm; }; în care câmpul info memorează un număr întreg, iar câmpul urm memorează adresa următorului element al listei. ==Cerinţa== Să se scrie o funcție C++ cu următorul prototip: void stergePrimul(nod * & p); care șterge primul element al unei liste; pointerul p are ca valo...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Enunţ

Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:

   struct nod{
     int info;
     nod * urm;
   };

în care câmpul info memorează un număr întreg, iar câmpul urm memorează adresa următorului element al listei.

Cerinţa

Să se scrie o funcție C++ cu următorul prototip:

   void stergePrimul(nod * & p);

care șterge primul element al unei liste; pointerul p are ca valoarea adresa primului element din listă – cel care va fi șters.

Restricţii şi precizări

numele funcției va fi stergePrimul dacă lista nu conține niciun element, pointerul p va avea valoarea NULL în toate cazurile, la ieșirea din apel p va memora adresa primului element al listei; dacă elementul șters este ultimul, p va avea valoarea NULL

Important

Soluţia propusă va conţine definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

Rezolvare

<syntaxhighlight lang="python" line>

  1. 1171 FStergePrimulDinLista

class Nod:

 def __init__(self, info):
   self.info = info
   self.urm = None

def stergePrimul(p):

 if p is None:
   return
 
 p = p.urm
  1. Exemplu de utilizare:
  2. Crearea unei liste liniare simplu înlănțuite

nod1 = Nod(1) nod2 = Nod(2) nod3 = Nod(3) nod1.urm = nod2 nod2.urm = nod3

  1. Afisarea listei inainte de stergerea primului element

print("Lista inainte de stergerea primului element:") current = nod1 while current is not None:

 print(current.info)
 current = current.urm
  1. Stergerea primului element

stergePrimul(nod1)

  1. Afisarea listei dupa stergerea primului element

print("Lista dupa stergerea primului element:") current = nod1.urm while current is not None:

 print(current.info)
 current = current.urm

</syntaxhighlight>#1171 FStergePrimulDinLista