<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.algopedia.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=10_2018_Lectia26</id>
	<title>10 2018 Lectia26 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.algopedia.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=10_2018_Lectia26"/>
	<link rel="alternate" type="text/html" href="https://www.algopedia.ro/wiki/index.php?title=10_2018_Lectia26&amp;action=history"/>
	<updated>2026-04-13T17:47:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.algopedia.ro/wiki/index.php?title=10_2018_Lectia26&amp;diff=18131&amp;oldid=prev</id>
		<title>Bella at 16:22, 9 June 2021</title>
		<link rel="alternate" type="text/html" href="https://www.algopedia.ro/wiki/index.php?title=10_2018_Lectia26&amp;diff=18131&amp;oldid=prev"/>
		<updated>2021-06-09T16:22:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Adaugare la sfarsitul listei ===&lt;br /&gt;
====[https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1168 FAdaugareLaLista]====&lt;br /&gt;
Să se scrie o funcție C++ care adaugă o valoarea la finalul unei liste simplu înlănțuită.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// adaugă valoarea x la sfârșitul listei&lt;br /&gt;
void adaugare ( nod* &amp;amp;p, int x ){&lt;br /&gt;
  nod *q;&lt;br /&gt;
  q = new nod;      		// alocam o noua adresa&lt;br /&gt;
  q-&amp;gt;info = x;			// punem in campul info valoare de adaugat la lista&lt;br /&gt;
  q-&amp;gt;urm = NULL;    		// q va fi ultimul element al listei&lt;br /&gt;
  if ( p == NULL )  		// daca am lista vida&lt;br /&gt;
    p = q;			// q va fi primul nod al listei&lt;br /&gt;
  else {            		// daca avem noduri in lista&lt;br /&gt;
    nod *sf = p;	        // parcurgem lista pana la ultimul element al listei&lt;br /&gt;
    while ( sf-&amp;gt;urm != NULL )&lt;br /&gt;
      sf = sf-&amp;gt;urm;&lt;br /&gt;
    sf-&amp;gt;urm = q;		// leg ultimul nod al listei de noul nod alocat&lt;br /&gt;
  }	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Observatie: Pentru un acces rapid al ultimului element al listei, putem sa folosim un al doilea pointer care sa retina ultimul nod al listei, in acest fel accesul la ultimul nod al listei se va realiza in O(1) ci nu in O(n) ca in in exemplul de mai sus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// adaugă valoarea x la sfârșitul listei&lt;br /&gt;
void adaugare ( nod* &amp;amp;p, nod* &amp;amp;u, int x ){&lt;br /&gt;
  nod *q;&lt;br /&gt;
  q = new nod;      		// alocam o noua adresa&lt;br /&gt;
  q-&amp;gt;info = x;			// punem in campul info valoare de adaugat la lista&lt;br /&gt;
  q-&amp;gt;urm = NULL;    		// q va fi ultimul element al listei&lt;br /&gt;
  if ( p == NULL )  		// daca am lista vida&lt;br /&gt;
    p = q, u = q;	        // q va fi si primul si ultimul nod al listei&lt;br /&gt;
  else {            		// daca avem noduri in lista&lt;br /&gt;
    u-&amp;gt;urm = q;		        // leg ultimul nod al listei de noul nod alocat&lt;br /&gt;
    u = q;                      // ultimul nod devine q&lt;br /&gt;
  }	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bella</name></author>
	</entry>
</feed>