This shows you the differences between two versions of the page.
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. |