Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sda-ab:laboratoare:04 [2021/02/17 22:12]
ruben_gilian.udroiu
sda-ab:laboratoare:04 [2021/03/14 11:52] (current)
gabriel.rusu [1. Obiectivele laboratorului]
Line 1: Line 1:
-===== Laboratorul ​04: Liste =====+===== Laboratorul ​3: Liste =====
  
  
Line 7: Line 7:
   * Implementarea unor funcții individuale de lucru cu aceste structuri de date.   * Implementarea unor funcții individuale de lucru cu aceste structuri de date.
  
 +Structura laboratorului se gaseste in **[[https://​github.com/​sda-ab/​lab-03-tasks|acest link.]]**
 ====== 2. Introducere ====== ====== 2. Introducere ======
 ===2.1. Ce este o lista?=== ===2.1. Ce este o lista?===
Line 24: Line 25:
 </​code>​ </​code>​
  
-===2.2. Clasificare?===+===2.2. Clasificare===
  
   ***Liste simplu inlantuite** - Elementele au o singură legătură către următorul element introdus, iar ultimul element pointează către NULL.   ***Liste simplu inlantuite** - Elementele au o singură legătură către următorul element introdus, iar ultimul element pointează către NULL.
Line 32: Line 33:
   ***Liste circulare** - Pot fi simplu sau dublu înlănțuite cu proprietatea că ultimul element pointează spre primul.   ***Liste circulare** - Pot fi simplu sau dublu înlănțuite cu proprietatea că ultimul element pointează spre primul.
 {{ :​sda-ab:​laboratoare:​circularlist.png?​400 |}} {{ :​sda-ab:​laboratoare:​circularlist.png?​400 |}}
 +
 +===2.3. Operatii cu liste===
 +  *Adăugare la începutul listei
 +  *Adăugare la sfârsitul listei
 +  *Adăugarea înainte sau după un element dat
 +  *Ștergerea capului de listă
 +  *Ștergerea unui element oarecare din listă
 +
 +====== 3. Exercitii propuse ======
 +
 +  - Creați o listă circulară,​dublu inlănțuită cu 6 angajați ai unei companii, care să conțină următoarele referințe: nume, nr de telefon, post.
 +    - Scrieți funcțiile care să scrie urmatoarele:​
 +    - Să introducă un nou angajat după al treilea.
 +    - Să introducă un nou angajat inainte de cel care e „mecanic“.
 +    - Să steargă angajatul cu un anumit număr de telefon introdus.
 +  - Să se creeze o listă liniara simplu inlantuita care contine elemente intregi citite dintr-ul fisier text. Se citeste apoi o valoare intreaga x. Sa se stearga primul nod care contine valoarea x. Fișierul se va da ca parametru în linia de comandă.
 +  - Să se construiasca o lista liniara simplu inlantuita cu elemente numere intregi. Să se afișeze și apoi să se stearga din lista elementele pare.
 +  - Adunaţi 2 polinoame rare, reprezentând fiecare polinom printr-o listă înlănţuită,​ unde fiecare nod va conţine datele pentru un coeficient şi o putere (de exemplu: 5 x3, coeficient = 5, putere = 3).
 +
 +===3.1. Intrebari de interviu===
 +  - Se dă o listă simplu înlănţuită(primiţi doar un pointer către primul element). Verificaţi dacă lista conţine o buclă. (o listă simplu înlănţuită conţine o buclă ⇒ niciun element nu are legătura NULL)
 +  - Se dau două liste(pentru fiecare listă - pointer către primul element) în formă de Y(listele se intersectează,​ ultimele k elemente sunt comune). Aflaţi valoarea lui k.
 +  - Se dă o listă cu 2n+1 elemente, fiecare element conţine câte un întreg. Toate valorile întregi apar de două ori în listă, excepţie facând una singură. Aflaţi acea valoare.
sda-ab/laboratoare/04.1613592729.txt.gz · Last modified: 2021/02/17 22:12 by ruben_gilian.udroiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0