Structuri de Date: Tablouri și Liste

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Care dintre următoarele afirmații descrie cel mai bine caracteristica unui tablou ca structură de date?

  • Un tablou este o structură de date omogenă și dinamică, permițând modificarea dimensiunii după alocare.
  • Un tablou este o structură de date omogenă și statică. (correct)
  • Un tablou este o structură de date eterogenă și statică.
  • Un tablou este o structură de date eterogenă și dinamică.

Ce importanță are indexul în contextul unui tablou?

  • Indexul specifică dimensiunea totală a tabloului.
  • Indexul permite identificarea unică a fiecărui element din tablou. (correct)
  • Indexul determină tipul de date stocat în tablou.
  • Indexul definește relația de ordine între tablouri.

În ce mod influențează alocarea memoriei faptul că un tablou are o dimensiune fixă?

  • Reduce timpul de acces la elemente, deoarece adresele sunt recalculate la fiecare accesare.
  • Permite realocarea dinamică a memoriei, optimizând utilizarea resurselor.
  • Facilitează adăugarea de elemente noi în orice moment, fără costuri suplimentare de performanță.
  • Restricționează modificarea dimensiunii tabloului după alocare, evitând fragmentarea memoriei. (correct)

Ce implică faptul că elementele unui tablou ocupă locații succesive în memorie?

<p>Permite accesul aleatoriu la elemente, optimizând timpul de acces. (D)</p> Signup and view all the answers

Cum se realizează asocierea dintre numele unui tablou și locația de memorie?

<p>Numele tabloului se asociază cu locația de memorie a primului element din tablou. (D)</p> Signup and view all the answers

De ce adăugarea unui element într-un tablou este considerată o operație laborioasă?

<p>Implică crearea unui vector nou de dimensiune mai mare și copierea elementelor existente. (B)</p> Signup and view all the answers

Ce complexitate temporală are, în general, accesarea unui element dintr-un tablou, folosind indexul său?

<p>O(1), acces direct, independent de dimensiunea tabloului. (A)</p> Signup and view all the answers

Care este dezavantajul principal al utilizării tablourilor statice într-un mediu în care dimensiunea datelor este imprevizibilă?

<p>Pot duce la risipă de memorie dacă dimensiunea este supraestimată sau la depășire dacă este subestimată. (D)</p> Signup and view all the answers

Ce reprezintă un tablou multidimensional?

<p>Un vector de vectori, fiecare vector reprezentând o dimensiune. (B)</p> Signup and view all the answers

Cum este definită o listă în contextul structurilor de date?

<p>O structură de date omogenă, secvențială, formată din elemente între care există o relație de ordine. (C)</p> Signup and view all the answers

Care este diferența fundamentală între un tablou și o listă în ceea ce privește dimensiunea?

<p>Tablourile au dimensiune fixă, specificată la alocare, în timp ce listele pot crește sau micșora dinamic. (D)</p> Signup and view all the answers

În contextul listelor, ce rol are 'câmpul cheie' al unui element?

<p>Stochează informația relevantă a elementului. (D)</p> Signup and view all the answers

Ce reprezintă 'legătura spre succesor' într-o listă înlănțuită?

<p>Un indicator către elementul următor din listă. (C)</p> Signup and view all the answers

Pentru o listă simplu înlănțuită, care dintre următoarele operații are complexitatea temporală cea mai mare în cazul general?

<p>Ștergerea ultimului element. (B)</p> Signup and view all the answers

În cazul unei liste dublu înlănțuite, ce avantaj major oferă existența legăturilor atât spre succesor, cât și spre predecesor?

<p>Permite parcurgerea listei în ambele direcții, facilitând anumite operații. (D)</p> Signup and view all the answers

Care este principala diferență între implementarea statică și cea dinamică a unei liste înlănțuite?

<p>Implementarea statică folosește tablouri pentru stocare, în timp ce implementarea dinamică utilizează pointeri. (A)</p> Signup and view all the answers

Care dintre următoarele operații nu modifică conținutul unei liste?

<p>Determinarea numărului de elemente. (D)</p> Signup and view all the answers

Care dintre urmăтоarele afirmații descrie corect operația de parcurgere a unei liste?

<p>Accesarea și prelucrarea fiecărui element din listă, într-o anumită ordine. (A)</p> Signup and view all the answers

Ce complexitate temporală are inserarea unui element la începutul unei liste simplu înlănțuite, dacă avem pointer la începutul listei?

<p>O(1) (C)</p> Signup and view all the answers

Ce se întâmplă dacă încercăm să accesăm un element dintr-un tablou folosind un index care depășește dimensiunea tabloului?

<p>Programul va arunca o excepție sau va accesa o zonă de memorie nealocată, ducând la comportament imprevizibil. (C)</p> Signup and view all the answers

Care dintre următoarele este un avantaj al utilizării unei liste înlănțuite în locul unui tablou pentru stocarea unei colecții de date care se modifică frecvent?

<p>Inserarea și ștergerea elementelor sunt mai eficiente. (B)</p> Signup and view all the answers

În implementarea dinamică a unei liste simplu înlănțuite, ce reprezintă pointerul către listă (”cap”)?

<p>Un indicator către primul element din listă. (A)</p> Signup and view all the answers

Pentru o listă simplu înlănțuită, ce se întâmplă cu complexitatea operațiilor de inserare și ștergere dacă nu avem un pointer către elementul anterior celui pe care vrem să-l modificăm?

<p>Complexitatea crește la O(n) pentru ambele operații. (D)</p> Signup and view all the answers

Care este utilitatea funcției free_sp(p) în contextul manipulării listelor înlănțuite?

<p>Eliberează memoria ocupată de un element care a fost șters din listă. (C)</p> Signup and view all the answers

Flashcards

Ce este un tablou?

O structură de date abstractă omogenă și statică.

Ce înseamnă dimensiune fixă?

Specificată la momentul alocării memoriei pentru tablou.

Cum accesezi elementele unui tablou?

Identificarea se face printr-un index, iar timpul de acces este același pentru toate elementele.

Ce reprezintă numele tabloului?

Adresa de memorie a primului element din tablou.

Signup and view all the flashcards

De ce adăugarea unui element este laborioasă?

Adăugarea implică crearea unui nou vector mai mare și copierea elementelor.

Signup and view all the flashcards

Ce este o listă?

O structură de date secvențială formată din noduri conectate printr-o relație de ordine.

Signup and view all the flashcards

Structura unei liste liniare simplu înlănțuite

Datele sunt organizate în elemente (noduri) care conțin informație și un pointer către următorul nod.

Signup and view all the flashcards

Ce este capul listei?

Primul element din listă. Singurul punct de acces către listă.

Signup and view all the flashcards

Cum este implementată o listă?

Un tip de date care poate fi alocat dinamic sau static.

Signup and view all the flashcards

Cum accesezi elementele unei liste înlănțuite?

Parcurgerea listei se face accesând fiecare nod pornind de la cap.

Signup and view all the flashcards

Cum se parcurge o listă?

Parcurgerea se face de la primul element până la ultimul, accesând fiecare nod în ordine.

Signup and view all the flashcards

Cum se inserează un nou element în listă?

Caută locația de inserare și modifică pointerii pentru a include noul element.

Signup and view all the flashcards

Cum se șterge un nod din listă?

Anulează legătura nodului care trebuie șters și eliberează memoria.

Signup and view all the flashcards

Ce este ultimul element?

Nodul al cărui câmp corespunzător este egal cu NULL (zero).

Signup and view all the flashcards

Ce sunt listele circulare?

Liste în care ultimul nod pointează înapoi la primul.

Signup and view all the flashcards

Ce sunt listele dublu înlănțuite?

Liste ce permit navigarea înainte și înapoi.

Signup and view all the flashcards

De ce modificarea pozițiilor elementelor este o operație laborioasă?

Necesită repoziționarea elementelor existente.

Signup and view all the flashcards

Care este avantajul principal al tablourilor?

Permite accesul rapid la orice element folosind indexul.

Signup and view all the flashcards

De ce dimensiunea listei este teoretic nelimitată, dar practic limitată?

Poate fi limitată de cantitatea de memorie disponibilă.

Signup and view all the flashcards

Cum găsești elementul din mijlocul unei liste liniare fără a număra elementele?

Parcurge lista cu doi pointeri, unul rapid și unul lent.

Signup and view all the flashcards

Study Notes

Structuri de Date și Algoritmi - Tablouri și Liste

  • Un tablou este o structură de date abstractă omogenă și statică.
  • Fiecare element dintr-un tablou este identificat printr-un index, iar timpul de acces este același pentru toate elementele.
  • Indecșii aparțin unei mulțimi peste care este definită o relație de ordine totală.
  • Tablourile au o dimensiune fixă specificată la alocare.
  • Elementele tabloului ocupă locații succesive în memorie.
  • Numele tabloului este asociat locației de memorie a primului element.
  • Adăugarea unui element într-un tablou este o operație care necesită crearea unui nou vector de dimensiune mai mare și copierea elementelor.
  • Modificarea pozițiilor elementelor (de exemplu, sortarea) este o operație laborioasă.

Tablouri Multidimensionale

  • Tablourile cu k dimensiuni pot fi interpretate ca vectori de tablouri cu k-1 dimensiuni.
  • O imagine RGB e un vector de 3 matrice, câte una pentru fiecare culoare.

Tipul Abstract de Date (TAD) - Listă

  • O listă este o structură de date omogenă și secvențială, formată din elemente (noduri) între care există cel puțin o relație de ordine.
  • Un element al listei este identificat prin succesor sau predecesor.
  • Un element al unei liste are un câmp cheie, o legătură spre predecesor și o legătură spre succesor.

Operații cu Liste

  • Operații de caracterizare: determinarea numărului de elemente, localizarea unui element cu anumite proprietăți (căutare), parcurgerea (afișarea) listei.
  • Operații care modifică conținutul listei: inițializarea, inserarea unui element, ștergerea unui element, modificarea conținutului unui element, operații complexe (sortarea).
  • Alte operații complexe: selecția elementelor după un criteriu, separarea unei liste în mai multe liste, combinarea unor liste prin concatenare sau interclasare.

Tipuri de Liste

  • Liste liniare
  • Liste simplu înlănțuite
  • Liste circulare
  • Liste dublu înlănțuite

Implementarea Listelor

  • Se poate face dinamic sau static.

Listă Liniară Simplu Înlănțuită (Implementare Statică)

  • Implementarea statică folosește un vector pentru stocarea datelor și a pointerilor către următorul element.

Listă Liniară Simplu Înlănțuită (Implementare Dinamică)

  • Un element (nod) are un câmp de date și un câmp de legătură (pointer la succesor).
  • Există un pointer către primul element ("capul listei") și ultimul element are câmpul de legătură NULL.
  • Parcurgerea se face într-un singur sens.
  • Dimensiunea listei este limitată de memoria disponibilă.

Notații Pseudocod pentru Liste Simplu Înlănțuite (dinamic)

  • p: adresa unui element din listă.
  • data(p): informația (valoarea) stocată în elementul de la adresa p.
  • succ(p): informația de înlănțuire (adresa următorului element).
  • p ← get_sp(): alocă o zonă de memorie pentru un nou element.
  • free_sp(p): eliberează zona de memorie ocupată de elementul de la adresa p.

Operații cu Liste Liniare Simplu Înlănțuite

Parcurgerea Listei

  • Se începe de la primul element (cap) și se parcurge lista până se ajunge la ultimul element(NULL).

Inserarea unui Element

  • Indiferent de locul inserării, trebuie alocată memorie pentru noul element.
  • Inserarea în fața primului element se face modificând pointerul cap.
  • Inserarea în interiorul listei necesită parcurgerea până la elementul q, după care se fac modificările pointerilor.

Ștergerea unui Element

  • Operația implică refacerea legăturilor și eliberarea memoriei.
  • Ștergerea primului element se face modificând pointerul cap.
  • Ștergerea din interiorul listei necesită parcurgerea până la elementul q.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser