<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4164_%E2%80%93_Fadaug%C4%83%C3%8Enainte</id>
	<title>4164 – FadaugăÎnainte - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4164_%E2%80%93_Fadaug%C4%83%C3%8Enainte"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4164_%E2%80%93_Fadaug%C4%83%C3%8Enainte&amp;action=history"/>
	<updated>2026-05-01T04:43:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4164_%E2%80%93_Fadaug%C4%83%C3%8Enainte&amp;diff=9756&amp;oldid=prev</id>
		<title>Cristina94: 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 *leg;     };  în care câmpul info memorează un număr întreg, iar câmpul leg memorează adresa următorului element al listei.  ==Cerinţa== Să se scrie o funcție C++ cu următorul prototip:      void FAdaugaInainte(Nod * &amp;head);  care, în lista pentru care primul element are adresa memorată...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4164_%E2%80%93_Fadaug%C4%83%C3%8Enainte&amp;diff=9756&amp;oldid=prev"/>
		<updated>2024-04-01T13:20:22Z</updated>

		<summary type="html">&lt;p&gt;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 *leg;     };  în care câmpul info memorează un număr întreg, iar câmpul leg memorează adresa următorului element al listei.  ==Cerinţa== Să se scrie o funcție C++ cu următorul prototip:      void FAdaugaInainte(Nod * &amp;amp;head);  care, în lista pentru care primul element are adresa memorată...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Enunţ==&lt;br /&gt;
Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:&lt;br /&gt;
&lt;br /&gt;
    struct Nod{&lt;br /&gt;
      int info;&lt;br /&gt;
      Nod *leg;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
în care câmpul info memorează un număr întreg, iar câmpul leg memorează adresa următorului element al listei.&lt;br /&gt;
&lt;br /&gt;
==Cerinţa==&lt;br /&gt;
Să se scrie o funcție C++ cu următorul prototip:&lt;br /&gt;
&lt;br /&gt;
    void FAdaugaInainte(Nod * &amp;amp;head);&lt;br /&gt;
&lt;br /&gt;
care, în lista pentru care primul element are adresa memorată în pointerul head, inserează inainte de fiecare nod cu informația impară dublul său. Lista are inițial cel puțin un element. Dacă lista nu are noduri cu informația impară, lista rămâne neschimbată. De exemplu, dacă lista conține inițial informațiile 1,7,3,4,13, atunci la final lista va fi: 2,1,14,7,6,3,4,26,13.&lt;br /&gt;
&lt;br /&gt;
==Important==&lt;br /&gt;
Se va rezolva în python.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#4164 FAdaugaInainte&lt;br /&gt;
class Nod:&lt;br /&gt;
  def __init__(self, info):&lt;br /&gt;
    self.info = info&lt;br /&gt;
    self.leg = None&lt;br /&gt;
&lt;br /&gt;
def FAdaugaInainte(head):&lt;br /&gt;
  nod_curent = head&lt;br /&gt;
  while nod_curent is not None:&lt;br /&gt;
    if nod_curent.info % 2 != 0:&lt;br /&gt;
      nod_nou = Nod(nod_curent.info * 2)&lt;br /&gt;
      nod_nou.leg = nod_curent&lt;br /&gt;
      if nod_curent == head:&lt;br /&gt;
        head = nod_nou&lt;br /&gt;
      else:&lt;br /&gt;
        nod_anterior.leg = nod_nou&lt;br /&gt;
    nod_anterior = nod_curent&lt;br /&gt;
    nod_curent = nod_curent.leg&lt;br /&gt;
&lt;br /&gt;
  return head&lt;br /&gt;
&lt;br /&gt;
def afisare(head):&lt;br /&gt;
  nod_curent = head&lt;br /&gt;
  while nod_curent is not None:&lt;br /&gt;
    print(nod_curent.info, end=&amp;quot; &amp;quot;)&lt;br /&gt;
    nod_curent = nod_curent.leg&lt;br /&gt;
  print()&lt;br /&gt;
&lt;br /&gt;
# Exemplu de utilizare&lt;br /&gt;
def main():&lt;br /&gt;
  # Construim lista liniară simplu înlănțuită de test&lt;br /&gt;
  head = Nod(1)&lt;br /&gt;
  head.leg = Nod(7)&lt;br /&gt;
  head.leg.leg = Nod(3)&lt;br /&gt;
  head.leg.leg.leg = Nod(4)&lt;br /&gt;
  head.leg.leg.leg.leg = Nod(13)&lt;br /&gt;
&lt;br /&gt;
  print(&amp;quot;Lista initiala:&amp;quot;)&lt;br /&gt;
  afisare(head)&lt;br /&gt;
&lt;br /&gt;
  # Apelam functia FAdaugaInainte pentru a insera dublul valorilor impare inaintea fiecarei valori impare&lt;br /&gt;
  head = FAdaugaInainte(head)&lt;br /&gt;
&lt;br /&gt;
  print(&amp;quot;Lista dupa inserare:&amp;quot;)&lt;br /&gt;
  afisare(head)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
  main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cristina94</name></author>
	</entry>
</feed>