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ă)