1172 – FListă Numărare: Diferență între versiuni

De la Universitas MediaWiki
(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: int numarare(nod * p); care determina și returnează numărul de elemente memorate în lista pe...)
 
 
(Nu s-a afișat o versiune intermediară efectuată de un alt utilizator)
Linia 10: Linia 10:


==Cerinţa==
==Cerinţa==
Să se scrie o funcție C++ cu următorul prototip:
Să se scrie o funcție Python cu următorul prototip:


     int numarare(nod * p);
     int numarare(nod * p);
Linia 17: Linia 17:


==Important==
==Important==
Se va rezolva în python.
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.
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.



Versiunea curentă din 9 mai 2024 09:52

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 Python cu următorul prototip:

   int numarare(nod * p);

care determina și returnează numărul de elemente memorate în lista pentru care primul element are adresa memorată în pointerul p.

Important

Se va rezolva în python.

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

#1172 FListaNumarare
class Node:
  def __init__(self, info):
    self.info = info
    self.next = None

def create_linked_list(elements):
  if not elements:
    return None
  head = Node(elements[0])
  current = head
  for element in elements[1:]:
    current.next = Node(element)
    current = current.next
  return head

def numarare(p):
  count = 0
  current = p
  while current is not None:
    count += 1
    current = current.next
  return count

# Exemplu de utilizare:
def main():
  # Creăm o listă de elemente
  elements = [1, 2, 3, 4]

  # Creăm lista liniară simplu înlănțuită
  p = create_linked_list(elements)

  # Apelăm funcția numarare pentru a număra elementele listei
  result = numarare(p)
  print("Numărul de elemente în listă este:", result)

if __name__ == "__main__":
  main()