Structuri de Date

Curs
8/10 (1 vot)
Conține 7 fișiere: pdf
Pagini : 96 în total
Cuvinte : 24722
Mărime: 1.13MB (arhivat)
Publicat de: Claudiu Tănasă
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Popescu Alexandru

Extras din curs

Tipuri Abstracte de Date în C

Un Tip Abstract de Date (TAD) este o colecţie de obiecte de un anumit tip, împreună cu

operaţiile asociate acestor obiecte. Un TAD folosit într-un program, este implementat

printr-un modul.

Orice modul este de sine stătător şi are o interfaţă bine definită, care lămureşte modul în

care este folosit modulul.

De ce sunt necesare TAD? Limbajele de programare posedă un mecanism de creere a

unor noi tipuri de date. Implementările acestor tipuri de nivel înalt, dispersate în

program, cresc complexitatea şi influienţează negativ asupra clarităţii. Dacă operaţiile

asupra acestor tipuri de nivel înalt nu se folosesc în mod consistent, atunci pot apare erori

în program.

Un TAD constă din:

· o mulţime S de structuri numite stări sau valori.

· un set de operaţii care pot fi aplicate stărilor din S.

Fiecare obiect sau instanţă a TAD are o stare. Operaţiile se clasifică în:

· operaţii de modificare a stării TAD şi

· funcţii de access, care furnizează informaţii asupra unui obiect al TAD, fără să

modifice starea.

Un TAD este o entitate matematică abstractă, cu existenţă independentă. TAD sunt

implementate prin module. Există o distincţie între TAD matematic şi implementarea sa

într-un limbaj de programare. Un singur TAD poate avea mai multe implementări

diferite.

Exemplu:Considerăm o coadă de întregi.In acest caz S este mulţimea tuturor secvenţelor

finite de întregi, iar operaţiile asociate sunt: Enq,Deq,Front,Q_Size, şi Q_Empty.

Proceduri de manipulare

Enq Inserează un întreg ca ultimă poziţie în coadă

Deq Şterge primul element din coadă

Funcţii de acces

Front furnizează întregul din vârful cozii

Q_Size furnizează numărul de întregi din coadă

Q_Empty testează dacă lungimea cozii este 0 sau nu

Alte exemple de structuri matematice care pot reprezenta TAD : mulţimi, grafuri, arbori,

matrice, polinoame, etc.

Mulţimea S este un set de obiecte matematice discrete de un tip oarecare.

Un obiect sau instanţă a TAD este asociat cu o istorie, de stări, provenite din aplicarea

operaţiilor TAD.

Pentru starea Empty operaţiile, Front şi Deq nu sunt definite. Trebuiesc stabilite

precondiţii pentru fiecare operaţie, indicând exact când se pot aplica aceste operaţii.

Astfel o precondiţie atât pentru Front cât şi pentru Deq este: ‘not Empty’.

Pentru ca un TAD să fie util, trebuie să fie îndeplinite precondiţiile pentru fiecare

operaţie. TAD bine definite indică clar precondiţiile pentru fiecare operaţie. TAD

documentează şi postcondiţiile, -condiţii care devin adevărate după executarea unei

operaţii. De exemplu, după executarea operaţiei Enq apare postcondiţia ‘not Empty’.

Operaţiile TAD pot fi gândite ca funcţii în sens matematic. Precondiţiile şi postcondiţiile

definesc domeniul şi codomeniul funcţiei. TAD este complet specificat numai în

momentul în care toate operaţiile au fost definite, cu toate precondiţiile şi postcondiţiile

implicate.

Implementarea TAD

Un Modul este o parte a programului izolată de restul programului printr-o interfaţă bine

definită. Modulele asigură servicii (funcţii, tipuri de date, ..) Clienţilor.

Un client poate fi orice (program, persoană, alt modul) care foloseşte servicile modulului.

Spunem că servicile se exportă clientului, sau sunt importate din modul.

Conceptul de modul implementează ideea ascunderii informaţiei, clienţii nu au acces la

detaliile implementării modulului. Clientul are acces la serviciile exportate prin interfaţă.

În general, există un modul separat pentru fiecare TAD.

În C fiecare TAD constă dintr-o structură. Utilizatorul TAD (clientul) primeşte o

referinţă (un pointer) la această structură. Pentru fiecare operaţie a TAD se defineşte o

funcţie, care conţine ca argument pointerul la TAD. Clientul nu poate folosi acest pointer

pentru a accesa direct câmpurile structurii, asigurându-se în acest mod ascunderea

informaţiei.

struct coada

Coada fata data

Q spate next

lung struct nod

Implementarea trebuie să conţină:

· O funcţie care crează un nou obiect (constructor)

Modul Utilizator

Interfaţă

· O funcţie care eliberează memoria asociată cu obiectul TAD când acesta nu se

mai foloseşte (destructor).

In C, se separă:

· implementarea modulului TAD într-un fişier .c care conţine structura concretă şi

definiţiile funcţilor,

· interfaţa modulului, într-un fişier .h care conţine definiri de tipuri şi prototipurile

funcţiilor exportate.

Preview document

Structuri de Date - Pagina 1
Structuri de Date - Pagina 2
Structuri de Date - Pagina 3
Structuri de Date - Pagina 4
Structuri de Date - Pagina 5
Structuri de Date - Pagina 6
Structuri de Date - Pagina 7
Structuri de Date - Pagina 8
Structuri de Date - Pagina 9
Structuri de Date - Pagina 10
Structuri de Date - Pagina 11
Structuri de Date - Pagina 12
Structuri de Date - Pagina 13
Structuri de Date - Pagina 14
Structuri de Date - Pagina 15
Structuri de Date - Pagina 16
Structuri de Date - Pagina 17
Structuri de Date - Pagina 18
Structuri de Date - Pagina 19
Structuri de Date - Pagina 20
Structuri de Date - Pagina 21
Structuri de Date - Pagina 22
Structuri de Date - Pagina 23
Structuri de Date - Pagina 24
Structuri de Date - Pagina 25
Structuri de Date - Pagina 26
Structuri de Date - Pagina 27
Structuri de Date - Pagina 28
Structuri de Date - Pagina 29
Structuri de Date - Pagina 30
Structuri de Date - Pagina 31
Structuri de Date - Pagina 32
Structuri de Date - Pagina 33
Structuri de Date - Pagina 34
Structuri de Date - Pagina 35
Structuri de Date - Pagina 36
Structuri de Date - Pagina 37
Structuri de Date - Pagina 38
Structuri de Date - Pagina 39
Structuri de Date - Pagina 40
Structuri de Date - Pagina 41
Structuri de Date - Pagina 42
Structuri de Date - Pagina 43
Structuri de Date - Pagina 44
Structuri de Date - Pagina 45
Structuri de Date - Pagina 46
Structuri de Date - Pagina 47
Structuri de Date - Pagina 48
Structuri de Date - Pagina 49
Structuri de Date - Pagina 50
Structuri de Date - Pagina 51
Structuri de Date - Pagina 52
Structuri de Date - Pagina 53
Structuri de Date - Pagina 54
Structuri de Date - Pagina 55
Structuri de Date - Pagina 56
Structuri de Date - Pagina 57
Structuri de Date - Pagina 58
Structuri de Date - Pagina 59
Structuri de Date - Pagina 60
Structuri de Date - Pagina 61
Structuri de Date - Pagina 62
Structuri de Date - Pagina 63
Structuri de Date - Pagina 64
Structuri de Date - Pagina 65
Structuri de Date - Pagina 66
Structuri de Date - Pagina 67
Structuri de Date - Pagina 68
Structuri de Date - Pagina 69
Structuri de Date - Pagina 70
Structuri de Date - Pagina 71
Structuri de Date - Pagina 72
Structuri de Date - Pagina 73
Structuri de Date - Pagina 74
Structuri de Date - Pagina 75
Structuri de Date - Pagina 76
Structuri de Date - Pagina 77
Structuri de Date - Pagina 78
Structuri de Date - Pagina 79
Structuri de Date - Pagina 80
Structuri de Date - Pagina 81
Structuri de Date - Pagina 82
Structuri de Date - Pagina 83
Structuri de Date - Pagina 84
Structuri de Date - Pagina 85
Structuri de Date - Pagina 86
Structuri de Date - Pagina 87
Structuri de Date - Pagina 88
Structuri de Date - Pagina 89
Structuri de Date - Pagina 90
Structuri de Date - Pagina 91
Structuri de Date - Pagina 92
Structuri de Date - Pagina 93
Structuri de Date - Pagina 94
Structuri de Date - Pagina 95
Structuri de Date - Pagina 96

Conținut arhivă zip

  • sd_curs1.pdf
  • sd_curs2.pdf
  • sd_curs3.pdf
  • sd_curs4.pdf
  • sd_curs5.pdf
  • sd_curs6.pdf
  • sd_curs7.pdf

Alții au mai descărcat și

Bazele tehnologiei informației

CONCEPTUL DE IT In perioada actual societatea este influentata in mod direct de utilizarea pe scara larga de TIC. Managementul performant, la...

Curs HTML

Internetul a fost descris ca „o colectie larga de retele“ sau ca o „retea de retele“. Desi ambele definitii sînt corecte, nici una nu surprinde...

Visual C++

Dupa cum multi dintre noi cunosc ,atomul este format din particule materiale si anume un nucleu incarcat electric pozitiv si mai multi electroni...

Programare în Java Script

Java - Sectiunea 3 Reducerea efectului de palpaire la crearea animatiilor Efectul suparator de palpaire a imaginii in cazul animatiilor, se poate...

Structuri de Date și Algoritmi

Arbori Binari Optimi Despre arbori binari optimi putem vorbi atunci cand, pentru fiecare dintre cheile unui arbore binar ordonat cunoastem...

Curs C++

Limbajele C si C++ sunt limbaje de programare de nivel înalt. Limbajul C a aparut în anii 1970 si a fost creat de Dennis Ritchie în...

Limbaje de Programare

1. Definirea şi clasificarea limbajelor de programare Limba (DEX) – sistem de comunicare alcătuit din sunete articulate, specifice omului, prin...

Grafică pe calculator

Computer Graphics Cristian Rusu Office 3-8 cristian.rusu@ucv.cl What will be? It will not be an ENGLISH course! ENGLISH will be an...

Te-ar putea interesa și

Exportul României pe perioada crizei economice

INTRODUCERE “Criza este cea mai binecuvântată situaţie care poate apăre pentru ţări şi persoane, pentru că ea atrage după sine progrese. Cine...

Structuri de Date

1. INTRODUCERE: • Obiectiv: Realizarea functiilor pentru diferite tipuri de transformari in structuri de date predefinite: vectori, matrici,...

Elaborarea și implementarea sistemului informațional registratorul al camerei înregistrării de stat al Republicii Moldova

Introducere În era pe care o trăim, era tehnologiilor informaţionale, informaţia este o componentă esenţială în desfăşurarea oricărei activităţi....

Structuri de date - gestiunea conturilor bancare

CONTROLUL COMPUTERIZAT AL CONTURILOR BANCARE 1. Introducere: Obiectivul proiectului este acela de a permite utilizatorului de a gestiona...

Structuri de date - gestiunea activității unei asociații studențești

1. Introducere Proiectul constă în realizarea unui program care are ca scop gestiunea unui magazin de vinuri, în vederea regăsirii...

Algoritmi de Calcul

Capitolul I Sistem Informaţional – Sistem Informatic I.1. Sistemul Informaţional. Un sistem poate fi privit ca un ansamblu de elemente...

Liste liniare dublu înlănțuite

CAP. STRUCTURI DE DATE Structura de date este o notiune abstracta, caracterizata prin operatiile care se executa asupra ei, in timp ce tipul de...

Algoritmi și Structuri de Date

Introducere: Semiotica se ocupã cu studiul semnelor în natura si în societate. Semnul nu este o calitate în sine a unui obiect, ci o functie pe...

Ai nevoie de altceva?