Differences

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

Link to this comparison view

sda-aa:laboratoare:03 [2021/03/16 21:19]
cristian.rusu
sda-aa:laboratoare:03 [2021/03/16 21:25] (current)
cristian.rusu
Line 13: Line 13:
 Listele sunt cele mai bune si cele mai simple exemple a unei structuri de date dinamice care foloseste pointeri la implementarea sa. In mod esential, trebuie inteles ca listele functioneaza ca un vector care se poate mari sau micsora dupa nevoie, din orice punct al multimii sale de elemente. Listele sunt cele mai bune si cele mai simple exemple a unei structuri de date dinamice care foloseste pointeri la implementarea sa. In mod esential, trebuie inteles ca listele functioneaza ca un vector care se poate mari sau micsora dupa nevoie, din orice punct al multimii sale de elemente.
  
-{{:​sda-aa:​laboratoare:​array_vs_list.png?​500|}}+{{:​sda-aa:​laboratoare:​array_vs_list.png?​600|}}
  
 Avantaje ale utilizarii listelor: Avantaje ale utilizarii listelor:
Line 23: Line 23:
 typedef struct { typedef struct {
      int val;      int val;
-     node *next;+     node_t ​*next;
 } node_t; } node_t;
 </​code>​ </​code>​
Line 31: Line 31:
   * Liste simplu inlantuite - Elementele au o singura legatura catre urmatorul element introdus, iar ultimul element pointeaza catre NULL.   * Liste simplu inlantuite - Elementele au o singura legatura catre urmatorul element introdus, iar ultimul element pointeaza catre NULL.
  
-{{:​sda-aa:​laboratoare:​simplelist.png?​500|}}+{{:​sda-aa:​laboratoare:​simplelist.png?​600|}}
  
  
   * Liste dublu inlantuite - Elementele au dubla legatura catre precedentul si antecedentul,​ capul listei pointand spre NULL si ultimul element de asemenea.   * Liste dublu inlantuite - Elementele au dubla legatura catre precedentul si antecedentul,​ capul listei pointand spre NULL si ultimul element de asemenea.
  
-{{:​sda-aa:​laboratoare:​doublelist.jpg?​500|}}+{{:​sda-aa:​laboratoare:​doublelist.jpg?​600|}}
  
   * Liste circulare - Pot fi simplu sau dublu inlantuite cu proprietatea ca ultimul element pointeaza spre primul.   * Liste circulare - Pot fi simplu sau dublu inlantuite cu proprietatea ca ultimul element pointeaza spre primul.
  
-{{:​sda-aa:​laboratoare:​circularlist.png?​500|}}+{{:​sda-aa:​laboratoare:​circularlist.png?​600|}}
  
 === C. Operatii cu liste === === C. Operatii cu liste ===
Line 59: Line 59:
   - Sa se creeze o lista 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. Fisierul se va da ca parametru In linia de comanda.   - Sa se creeze o lista 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. Fisierul se va da ca parametru In linia de comanda.
   - Sa se construiasca o lista liniara simplu inlantuita cu elemente numere intregi. Sa se afiseze si apoi sa se stearga din lista elementele pare.   - Sa se construiasca o lista liniara simplu inlantuita cu elemente numere intregi. Sa se afiseze si apoi sa se stearga din lista elementele pare.
-  - Adunati 2 polinoame rare, reprezentand fiecare polinom printr-o lista Inlantuita, unde fiecare nod va contine datele pentru un coeficient şi o putere (de exemplu: ​5 x3, coeficient = 5, putere = 3).+  - Adunati 2 polinoame rare, reprezentand fiecare polinom printr-o lista Inlantuita, unde fiecare nod va contine datele pentru un coeficient şi o putere (de exemplu: ​5x3, coeficient = 5, putere = 3).
   - Pentru laboratorul de liste inlantuite vom porni de la o arhiva cu un schelet de laborator. Nu veti scrie codul de la zero ci veti implementa cateva functii in fisierul list.c.   - Pentru laboratorul de liste inlantuite vom porni de la o arhiva cu un schelet de laborator. Nu veti scrie codul de la zero ci veti implementa cateva functii in fisierul list.c.
  
Line 67: Line 67:
 ==== 4. Probleme optionale, de interviu==== ==== 4. Probleme optionale, de interviu====
  
-  - Se da o lista simplu inlantuita(primiti doar un pointer catre primul element). Verificati daca lista contine o bucla. (o lista simplu Inlantuita contine o bucla ⇒ niciun element nu are legatura NULL) +  - Se da o lista simplu inlantuita (primiti doar un pointer catre primul element). Verificati daca lista contine o bucla. (o lista simplu Inlantuita contine o bucla ⇒ niciun element nu are legatura NULL) 
-  - Se dau doua liste(pentru fiecare lista - pointer catre primul element) ​In forma de Y(listele se intersecteaza,​ ultimele k elemente sunt comune). Aflati valoarea lui k. +  - Se dau doua liste(pentru fiecare lista - pointer catre primul element) ​in forma de Y (listele se intersecteaza,​ ultimele k elemente sunt comune). Aflati valoarea lui k. 
-  - Se da o lista cu 2n+1 elemente, fiecare element contine cate un Intreg. Toate valorile ​Intregi ​apar de doua ori In lista, exceptie facand una singura. Aflati acea valoare.+  - Se da o lista cu 2n+1 elemente, fiecare element contine cate un intreg. Toate valorile ​intregi ​apar de doua ori in lista, exceptie facand una singura. Aflati acea valoare.
  
sda-aa/laboratoare/03.1615922349.txt.gz · Last modified: 2021/03/16 21:19 by cristian.rusu
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