Note de curs, clasele 9-10, 19 octombrie 2012
From Algopedia
Jump to navigationJump to search
Pointeri
- finețuri despre pointeri:
a[3] = *(a + 3)
scanf("%d", a + 3)
char *
vs.int *
etc.
- greșeli frecvente
- pointeri la variabile locale (care se dealocă)
- pointeri neinițializați
- a[4] când a are 3 elemente
- pointeri la pointeri, în special pentru pointeri trimiși ca parametri
- liste simplu înlănțuite
- aplicații: dealocare, numărătoare
- liste dublu înlănțuite - definiție, avantaje, dezavantaje
- liste circulare
- santinelă pe liste dublu înlănțuită
Probleme
- întoarcerea pe dos a unei liste
- concatenarea a două liste
- numărătoare în cerc, se dau n și k
- eliminarea duplicatelor dintr-o listă sortată
- intersecția a două liste sortate
- depistarea unui ciclu într-o listă simplu înlănțuită: să se afișeze primul element și lungimea ciclului
- întoarcerea pe dos recursivă a unei liste, O(n) timp
- să se modifice pointerii unui arbore binar ordonat pentru a obține o listă dublu înlănțuită ordonată
- găsirea joncțiunii a două liste (dacă există)