logo

O introducere în structurile de date

De la inventarea computerelor, oamenii au folosit termenul ' Date ' pentru a se referi la Informații despre computer, fie transmise, fie stocate. Cu toate acestea, există date care există și în tipurile de ordine. Datele pot fi numere sau texte scrise pe o bucată de hârtie, sub formă de biți și octeți stocați în memoria dispozitivelor electronice sau fapte stocate în mintea unei persoane. Pe măsură ce lumea a început să se modernizeze, aceste date au devenit un aspect semnificativ al vieții de zi cu zi a fiecăruia și diverse implementări le-au permis să le stocheze diferit.

Date este o colecție de fapte și cifre sau un set de valori sau valori cu un format specific care se referă la un singur set de valori ale articolului. Elementele de date sunt apoi clasificate în sub-articole, care este grupul de articole care nu sunt cunoscute ca forma primară simplă a articolului.

Să luăm în considerare un exemplu în care numele unui angajat poate fi împărțit în trei sub-articole: primul, mijlocul și ultimul. Cu toate acestea, un ID atribuit unui angajat va fi, în general, considerat un singur articol.

O introducere în structurile de date

Figura 1: Reprezentarea elementelor de date

În exemplul menționat mai sus, elementele precum ID, Vârsta, Sexul, Primul, Mijlocul, Ultimul, Strada, Localitatea etc., sunt elemente de date elementare. În schimb, numele și adresa sunt elemente de date de grup.

Ce este structura datelor?

Structură de date este o ramură a Informaticii. Studiul structurii datelor ne permite să înțelegem organizarea datelor și gestionarea fluxului de date pentru a crește eficiența oricărui proces sau program. Structura datelor este o modalitate specială de stocare și organizare a datelor în memoria computerului, astfel încât aceste date să poată fi recuperate cu ușurință și utilizate eficient în viitor, atunci când este necesar. Datele pot fi gestionate în diferite moduri, cum ar fi modelul logic sau matematic pentru o anumită organizare a datelor este cunoscut ca structură de date.

Sfera de aplicare a unui anumit model de date depinde de doi factori:

  1. În primul rând, trebuie să fie încărcat suficient în structură pentru a reflecta corelația definitivă a datelor cu un obiect din lumea reală.
  2. În al doilea rând, formarea ar trebui să fie atât de simplă încât să se poată adapta pentru a procesa datele în mod eficient ori de câte ori este necesar.

Câteva exemple de structuri de date sunt matrice, liste legate, stivă, coadă, arbori etc. Structurile de date sunt utilizate pe scară largă în aproape toate aspectele informaticii, adică, proiectarea compilatorului, sistemele de operare, grafică, inteligența artificială și multe altele.

Structurile de date sunt partea principală a multor algoritmi informatici, deoarece permit programatorilor să gestioneze datele într-un mod eficient. Joacă un rol crucial în îmbunătățirea performanței unui program sau software, deoarece obiectivul principal al software-ului este stocarea și recuperarea datelor utilizatorului cât mai repede posibil.

exemple de programe python

Terminologii de bază legate de structurile de date

Structurile de date sunt elementele de bază ale oricărui software sau program. Selectarea structurii de date potrivite pentru un program este o sarcină extrem de dificilă pentru un programator.

Următoarele sunt câteva terminologii fundamentale utilizate ori de câte ori sunt implicate structurile de date:

    Date:Putem defini datele ca o valoare elementară sau o colecție de valori. De exemplu, numele și ID-ul angajatului sunt datele referitoare la angajat.Elemente de date:O singură unitate de valoare este cunoscută sub numele de Element de date.Articole de grup:Elementele de date care au elemente de date subordonate sunt cunoscute sub denumirea de articole de grup. De exemplu, numele unui angajat poate avea un prenume, un mijloc și un nume de familie.Elemente elementare:Elementele de date care nu pot fi împărțite în sub-articole sunt cunoscute sub denumirea de Elemente elementare. De exemplu, ID-ul unui angajat.Entitate și atribut:O clasă de anumite obiecte este reprezentată de o Entitate. Este format din diferite atribute. Fiecare Atribut simbolizează proprietatea specifică a acelei Entități. De exemplu,
Atribute ID Nume Gen Denumirea funcției
Valori 1234 Stacey M. Hill Femeie Dezvoltator de software

Entitățile cu atribute similare formează un Set de entitati . Fiecare atribut al unui set de entități are o gamă de valori, setul tuturor valorilor posibile care ar putea fi atribuite atributului specific.

Termenul „informații” este uneori utilizat pentru date cu atribute date de date semnificative sau prelucrate.

    Camp:O singură unitate elementară de informație care simbolizează Atributul unei Entități este cunoscută sub numele de Câmp.Record:O colecție de elemente de date diferite este cunoscută sub numele de Înregistrare. De exemplu, dacă vorbim despre entitatea angajat, atunci numele, id-ul, adresa și titlul postului acesteia pot fi grupate pentru a forma înregistrarea pentru angajat.Fişier:O colecție de înregistrări diferite de un tip de entitate este cunoscută sub numele de fișier. De exemplu, dacă există 100 de angajați, în fișierul aferent vor fi 25 de înregistrări care conțin date despre fiecare angajat.

Înțelegerea necesității structurilor de date

Pe măsură ce aplicațiile devin din ce în ce mai complexe și cantitatea de date crește în fiecare zi, ceea ce poate duce la probleme cu căutarea datelor, viteza de procesare, gestionarea cererilor multiple și multe altele. Structurile de date acceptă diferite metode de organizare, gestionare și stocare eficientă a datelor. Cu ajutorul structurilor de date, putem parcurge cu ușurință elementele de date. Structurile de date oferă eficiență, reutilizare și abstracție.

De ce ar trebui să învățăm Structurile de date?

  1. Structurile de date și algoritmii sunt două dintre aspectele cheie ale informaticii.
  2. Structurile de date ne permit să organizăm și să stocăm date, în timp ce algoritmii ne permit să procesăm acele date în mod semnificativ.
  3. Învățarea structurilor de date și a algoritmilor ne va ajuta să devenim programatori mai buni.
  4. Vom putea scrie cod care este mai eficient și mai fiabil.
  5. De asemenea, vom putea rezolva problemele mai rapid și mai eficient.

Înțelegerea obiectivelor structurilor de date

Structurile de date satisfac două obiective complementare:

    Corectitudine:Structurile de date sunt concepute pentru a funcționa corect pentru toate tipurile de intrări bazate pe domeniul de interes. Cu alte cuvinte, corectitudinea formează obiectivul principal al structurii de date, care depinde întotdeauna de problemele pe care structura de date este menită să le rezolve.Eficienţă:Structurile de date necesită, de asemenea, să fie eficiente. Ar trebui să proceseze datele rapid, fără a utiliza multe resurse ale computerului, cum ar fi spațiul de memorie. Într-o stare în timp real, eficiența unei structuri de date este un factor cheie în determinarea succesului și eșecului procesului.

Înțelegerea unor caracteristici cheie ale structurilor de date

Unele dintre caracteristicile semnificative ale structurilor de date sunt:

număr aleator gen java
    Robusteţe:În general, toți programatorii de computere urmăresc să producă software care oferă rezultate corecte pentru fiecare intrare posibilă, împreună cu execuție eficientă pe toate platformele hardware. Acest tip de software robust trebuie să gestioneze atât intrările valide, cât și cele nevalide.Adaptabilitate:Crearea de aplicații software, cum ar fi browsere web, procesoare de text și motor de căutare pe Internet, includ sisteme software uriașe care necesită funcționare sau execuție corectă și eficientă de mulți ani. Mai mult, software-ul evoluează datorită tehnologiilor emergente sau a condițiilor de piață în continuă schimbare.Reutilizabilitate:Caracteristicile precum reutilizarea și adaptabilitatea merg mână în mână. Se știe că programatorul are nevoie de multe resurse pentru a construi orice software, ceea ce îl face o întreprindere costisitoare. Totuși, dacă software-ul este dezvoltat într-un mod reutilizabil și adaptabil, atunci acesta poate fi aplicat în majoritatea aplicațiilor viitoare. Astfel, prin executarea unor structuri de date de calitate, este posibil să se construiască software reutilizabil, care pare să fie rentabil și economisește timp.

Clasificarea structurilor de date

O structură de date oferă un set structurat de variabile legate între ele în diferite moduri. Acesta formează baza unui instrument de programare care semnifică relația dintre elementele de date și permite programatorilor să proceseze datele în mod eficient.

Putem clasifica structurile de date în două categorii:

  1. Structura de date primitive
  2. Structura de date non-primitive

Figura următoare prezintă diferitele clasificări ale structurilor de date.

O introducere în structurile de date

Figura 2: Clasificări ale structurilor de date

Structuri de date primitive

    Structuri de date primitivesunt structurile de date formate din numerele și caracterele care vin încorporat în programe.
  1. Aceste structuri de date pot fi manipulate sau operate direct prin instrucțiuni la nivel de mașină.
  2. Tipuri de date de bază, cum ar fi Integer, Float, Caracter , și boolean intră sub Structurile de date primitive.
  3. Aceste tipuri de date sunt, de asemenea, numite Tipuri de date simple , deoarece conțin caractere care nu pot fi împărțite în continuare

Structuri de date non-primitive

    Structuri de date non-primitivesunt acele structuri de date derivate din Structuri de date primitive.
  1. Aceste structuri de date nu pot fi manipulate sau operate direct de instrucțiuni la nivel de mașină.
  2. Accentul acestor structuri de date este pe formarea unui set de elemente de date care este fie omogen (același tip de date) sau eterogen (diferite tipuri de date).
  3. Pe baza structurii și aranjamentului datelor, putem împărți aceste structuri de date în două subcategorii -
    1. Structuri liniare de date
    2. Structuri de date neliniare

Structuri liniare de date

O structură de date care păstrează o conexiune liniară între elementele sale de date este cunoscută sub numele de Structură de date liniară. Aranjarea datelor se face liniar, unde fiecare element este format din succesori și predecesori, cu excepția primului și ultimului element de date. Cu toate acestea, nu este neapărat adevărat în cazul memoriei, deoarece aranjamentul poate să nu fie secvenţial.

Pe baza alocării memoriei, structurile liniare de date sunt clasificate în continuare în două tipuri:

    Structuri statice de date:Structurile de date cu dimensiune fixă ​​sunt cunoscute sub denumirea de Structuri de date Statice. Memoria pentru aceste structuri de date este alocată la momentul compilatorului, iar dimensiunea acestora nu poate fi modificată de către utilizator după compilare; cu toate acestea, datele stocate în acestea pot fi modificate.
    The Matrice este cel mai bun exemplu al structurii de date statice, deoarece acestea au o dimensiune fixă, iar datele acesteia pot fi modificate ulterior.Structuri dinamice de date:Structurile de date care au o dimensiune dinamică sunt cunoscute ca Structuri de date dinamice. Memoria acestor structuri de date este alocată în timpul rulării, iar dimensiunea lor variază în timpul rulării codului. Mai mult, utilizatorul poate modifica dimensiunea, precum și elementele de date stocate în aceste structuri de date în timpul rulării codului.
    Liste legate, stive , și Cozi sunt exemple comune de structuri de date dinamice

Tipuri de structuri liniare de date

Următoarea este lista structurilor liniare de date pe care le folosim în general:

1. Matrice

Un Matrice este o structură de date utilizată pentru a colecta mai multe elemente de date de același tip de date într-o singură variabilă. În loc să stocăm mai multe valori ale acelorași tipuri de date în nume de variabile separate, le-am putea stoca pe toate împreună într-o singură variabilă. Această afirmație nu implică faptul că va trebui să unim toate valorile aceluiași tip de date din orice program într-o singură matrice a acelui tip de date. Dar vor exista adesea momente în care unele variabile specifice ale acelorași tipuri de date sunt toate legate între ele într-un mod adecvat pentru o matrice.

Un Array este o listă de elemente în care fiecare element are un loc unic în listă. Elementele de date ale matricei au același nume de variabilă; cu toate acestea, fiecare poartă un număr de index diferit numit indice. Putem accesa orice element de date din listă cu ajutorul locației acestuia în listă. Astfel, caracteristica cheie a matricelor de înțeles este că datele sunt stocate în locații de memorie învecinate, făcând posibil ca utilizatorii să traverseze elementele de date ale matricei utilizând indecșii lor respectivi.

O introducere în structurile de date

Figura 3. O matrice

Matricele pot fi clasificate în diferite tipuri:

    Matrice unidimensională:Un tablou cu un singur rând de elemente de date este cunoscut sub numele de tablou unidimensional. Este stocat într-un loc de stocare ascendent.Matrice bidimensională:O matrice formată din mai multe rânduri și coloane de elemente de date se numește matrice bidimensională. Este cunoscut și sub numele de Matrix.Matrice multidimensională:Putem defini Multidimensional Array ca un Array of Arrays. Matricele multidimensionale nu sunt limitate la doi indici sau două dimensiuni, deoarece pot include cât mai mulți indici sunt în funcție de nevoie.

Câteva aplicații ale matricei:

java convertește caracterul în șir
  1. Putem stoca o listă de elemente de date aparținând aceluiași tip de date.
  2. Array acționează ca o stocare auxiliară pentru alte structuri de date.
  3. Matricea ajută, de asemenea, la stocarea elementelor de date ale unui arbore binar cu număr fix.
  4. Array acționează și ca o stocare a matricelor.

2. Liste legate

A Lista legată este un alt exemplu de structură de date liniară utilizată pentru a stoca o colecție de elemente de date în mod dinamic. Elementele de date din această structură de date sunt reprezentate de Noduri, conectate folosind link-uri sau pointeri. Fiecare nod conține două câmpuri, câmpul de informații este format din datele reale, iar câmpul pointer este format din adresa nodurilor următoare din listă. Pointerul ultimului nod al listei legate constă dintr-un pointer nul, deoarece nu indică nimic. Spre deosebire de Arrays, utilizatorul poate ajusta dinamic dimensiunea unei liste conectate conform cerințelor.

O introducere în structurile de date

Figura 4. O listă legată

Listele legate pot fi clasificate în diferite tipuri:

    Lista legată individual:O listă legată individual este cel mai comun tip de listă legată. Fiecare nod are date și un câmp de indicator care conține o adresă către următorul nod.Listă dublu legată:O listă dublu legată constă dintr-un câmp de informații și două câmpuri de indicator. Câmpul de informații conține datele. Primul câmp de indicator conține o adresă a nodului anterior, în timp ce un alt câmp de indicator conține o referință la nodul următor. Astfel, putem merge în ambele direcții (înapoi și înainte).Listă circulară legată:Lista circulară legată este similară cu Lista legată individual. Singura diferență cheie este că ultimul nod conține adresa primului nod, formând o buclă circulară în Lista Circular Linked.

Câteva aplicații ale listelor conectate:

  1. Listele legate ne ajută să implementăm stive, cozi, arbori binari și grafice de dimensiuni predefinite.
  2. De asemenea, putem implementa funcția sistemului de operare pentru gestionarea dinamică a memoriei.
  3. Listele legate permit, de asemenea, implementarea polinomială pentru operații matematice.
  4. Putem folosi Circular Linked List pentru a implementa sisteme de operare sau funcții de aplicație care execută sarcinile Round Robin.
  5. Lista circulară legată este, de asemenea, utilă într-o prezentare de diapozitive în care un utilizator trebuie să se întoarcă la primul diapozitiv după ce este prezentat ultimul diapozitiv.
  6. Lista dublu legată este utilizată pentru a implementa butoane înainte și înapoi într-un browser pentru a deplasa înainte și înapoi în paginile deschise ale unui site web.

3. Stive

A Grămadă este o structură de date liniară care urmează LIFO Principiul (Last In, First Out) care permite operațiuni precum inserarea și ștergerea de la un capăt al stivei, adică Top. Stivele pot fi implementate cu ajutorul memoriei contigue, a unui Array, și a memoriei non-contigue, a unei Liste Linked. Exemple reale de stive sunt grămezi de cărți, pachete de cărți, grămezi de bani și multe altele.

O introducere în structurile de date

Figura 5. Un exemplu real de Stack

Figura de mai sus reprezintă exemplul real al unei Stive în care operațiunile sunt efectuate doar de la un capăt, cum ar fi inserarea și îndepărtarea de cărți noi din partea de sus a Stivei. Implică faptul că inserarea și ștergerea în Stivă se pot face numai din partea de sus a Stivei. Putem accesa doar vârfurile Stivei în orice moment.

Operațiunile principale din stivă sunt următoarele:

    Apăsaţi:Operația de inserare a unui nou element în stivă se numește operație Push.Pop:Operația de eliminare sau ștergere a elementelor din stivă se numește operație Pop.
O introducere în structurile de date

Figura 6. O stivă

Câteva aplicații ale stivelor:

  1. Stiva este folosită ca o structură de stocare temporară pentru operațiuni recursive.
  2. Stack este, de asemenea, utilizat ca structură de stocare auxiliară pentru apeluri de funcții, operațiuni imbricate și funcții amânate/amânate.
  3. Putem gestiona apelurile de funcții folosind Stacks.
  4. Stivele sunt, de asemenea, utilizate pentru a evalua expresiile aritmetice în diferite limbaje de programare.
  5. Stivele sunt, de asemenea, utile în conversia expresiilor infixate în expresii postfix.
  6. Stivele ne permit să verificăm sintaxa expresiei în mediul de programare.
  7. Putem potrivi parantezele folosind Stacks.
  8. Stivele pot fi folosite pentru a inversa un șir.
  9. Stivele sunt utile în rezolvarea problemelor bazate pe backtracking.
  10. Putem folosi Stacks în căutarea în profunzime în parcurgerea graficului și a arborilor.
  11. Stivele sunt, de asemenea, folosite în funcțiile sistemului de operare.
  12. Stivele sunt, de asemenea, folosite în funcțiile UNDO și REDO într-o editare.

4. Cozi

A Coadă este o structură de date liniară similară cu o stivă, cu unele limitări privind inserarea și ștergerea elementelor. Introducerea unui element într-o coadă se face la un capăt, iar îndepărtarea se face la un alt capăt sau opus. Astfel, putem concluziona că structura datelor Queue urmează principiul FIFO (First In, First Out) pentru a manipula elementele de date. Implementarea cozilor se poate face folosind matrice, liste legate sau stive. Câteva exemple din viața reală de cozi sunt o linie la ghișeul de bilete, o scară rulantă, o spălătorie auto și multe altele.

O introducere în structurile de date

Figura 7. Un exemplu real de coadă

împărțirea unui șir în c++

Imaginea de mai sus este o ilustrare reală a unui ghișeu de bilete de film care ne poate ajuta să înțelegem coada în care clientul care vine primul este întotdeauna servit primul. Clientul care sosește ultimul va fi, fără îndoială, servit ultimul. Ambele capete ale Cozii sunt deschise și pot executa diferite operații. Un alt exemplu este o linie de food court în care clientul este introdus din partea din spate, în timp ce clientul este îndepărtat din față după ce a furnizat serviciul pe care l-a solicitat.

Următoarele sunt operațiunile principale ale Cozii:

    coadă:Inserarea sau adăugarea unor elemente de date la coadă se numește Enqueue. Introducerea elementului se face întotdeauna cu ajutorul indicatorului din spate.Scoateți la coadă:Ștergerea sau eliminarea elementelor de date din coadă este denumită Decodare. Ștergerea elementului se face întotdeauna cu ajutorul indicatorului frontal.
O introducere în structurile de date

Figura 8. Coadă

Câteva aplicații ale cozilor:

  1. Cozile sunt utilizate în general în operația de căutare pe lățime în Graphs.
  2. Cozile sunt, de asemenea, folosite în operațiunile Job Scheduler ale sistemelor de operare, cum ar fi o coadă tampon de tastatură pentru a stoca tastele apăsate de utilizatori și o coadă tampon de imprimare pentru a stoca documentele tipărite de imprimantă.
  3. Cozile sunt responsabile pentru programarea CPU, programarea jobului și programarea discului.
  4. Cozile prioritare sunt utilizate în operațiunile de descărcare a fișierelor într-un browser.
  5. Cozile sunt, de asemenea, folosite pentru a transfera date între dispozitivele periferice și CPU.
  6. Cozile sunt, de asemenea, responsabile pentru gestionarea întreruperilor generate de aplicațiile utilizator pentru CPU.

Structuri de date neliniare

Structurile de date non-liniare sunt structuri de date în care elementele de date nu sunt aranjate în ordine secvențială. Aici, inserarea și eliminarea datelor nu sunt fezabile într-o manieră liniară. Există o relație ierarhică între elementele de date individuale.

Tipuri de structuri de date neliniare

Următoarea este lista structurilor de date neliniare pe care le folosim în general:

1. Copaci

Un arbore este o structură de date neliniară și o ierarhie care conține o colecție de noduri astfel încât fiecare nod al arborelui stochează o valoare și o listă de referințe la alte noduri („copii”).

Structura de date Tree este o metodă specializată de aranjare și colectare a datelor în computer pentru a fi utilizate mai eficient. Conține un nod central, noduri structurale și sub-noduri conectate prin margini. De asemenea, putem spune că structura de date a arborelui constă din rădăcini, ramuri și frunze conectate.

O introducere în structurile de date

Figura 9. Un copac

Copacii pot fi clasificați în diferite tipuri:

    Arborele binar:O structură de date arbore în care fiecare nod părinte poate avea cel mult doi copii este denumită arbore binar.Arborele de căutare binar:Un arbore de căutare binar este o structură de date arbore în care putem menține cu ușurință o listă sortată de numere.Arborele AVL:Un arbore AVL este un arbore binar de căutare cu auto-echilibrare în care fiecare nod păstrează informații suplimentare cunoscute sub numele de factor de echilibru a cărui valoare este fie -1, 0 sau +1.B-Tree:Un B-Tree este un tip special de arbore de căutare binar cu auto-echilibrare în care fiecare nod este format din mai multe chei și poate avea mai mult de doi copii.

Câteva aplicații ale arborilor:

  1. Arborii implementează structuri ierarhice în sisteme informatice, cum ar fi directoare și sisteme de fișiere.
  2. Arborii sunt, de asemenea, folosiți pentru a implementa structura de navigare a unui site web.
  3. Putem genera cod ca codul lui Huffman folosind Arbori.
  4. Arborii sunt, de asemenea, de ajutor în luarea deciziilor în aplicațiile de jocuri.
  5. Arborii sunt responsabili pentru implementarea cozilor de prioritate pentru funcțiile de planificare a sistemului de operare bazate pe priorități.
  6. Arborii sunt, de asemenea, responsabili pentru analizarea expresiilor și declarațiilor în compilatoarele diferitelor limbaje de programare.
  7. Putem folosi Trees pentru a stoca cheile de date pentru indexare pentru Sistemul de management al bazelor de date (DBMS).
  8. Spanning Trees ne permite să direcționăm deciziile în rețelele de calculatoare și comunicații.
  9. Arborii sunt utilizați și în algoritmul de găsire a căii implementat în aplicațiile de inteligență artificială (AI), robotică și jocuri video.

2. Grafice

Un grafic este un alt exemplu de structură de date neliniară care cuprinde un număr finit de noduri sau vârfuri și marginile care le conectează. Graficele sunt utilizate pentru a aborda problemele din lumea reală în care denotă zona cu probleme ca o rețea, cum ar fi rețelele sociale, rețelele de circuite și rețelele de telefonie. De exemplu, nodurile sau vârfurile unui grafic pot reprezenta un singur utilizator într-o rețea de telefonie, în timp ce marginile reprezintă legătura dintre ele prin telefon.

Structura de date Graph, G este considerată o structură matematică compusă dintr-un set de vârfuri, V și un set de muchii, E, după cum se arată mai jos:

G = (V,E)

O introducere în structurile de date

Figura 10. Un grafic

Figura de mai sus reprezintă un grafic având șapte vârfuri A, B, C, D, E, F, G și zece muchii [A, B], [A, C], [B, C], [B, D], [B, E], [C, D], [D, E], [D, F], [E, F] și [E, G].

În funcție de poziția vârfurilor și a muchiilor, graficele pot fi clasificate în diferite tipuri:

    Grafic nul:Un grafic cu un set gol de muchii este numit grafic nul.Grafic trivial:Un graf care are un singur vârf se numește graf trivial.Grafic simplu:Un grafic care nu are nici bucle proprii, nici margini multiple este cunoscut ca un grafic simplu.Grafic multiplu:Se spune că un grafic este Multi dacă constă din mai multe muchii, dar fără bucle proprii.Pseudografic:Un grafic cu bucle proprii și margini multiple este denumit pseudograf.Grafic nedirecționat:Un grafic format din muchii nedirecționate este cunoscut sub numele de grafic nedirecționat.Graficul direcționat:Un grafic care constă din muchiile direcționate dintre vârfuri este cunoscut sub numele de grafic direcționat.Grafic conectat:Un graf cu cel puțin o singură cale între fiecare pereche de vârfuri este numit graf conectat.Grafic deconectat:Un grafic în care nu există nicio cale între cel puțin o pereche de vârfuri este numit un grafic deconectat.Graficul obișnuit:Un grafic în care toate vârfurile au același grad este numit un grafic regulat.Grafic complet:Un grafic în care toate nodurile au o muchie între fiecare pereche de vârfuri este cunoscut ca un grafic complet.Graficul ciclului:Se spune că un grafic este un ciclu dacă are cel puțin trei vârfuri și muchii care formează un ciclu.Graficul ciclic:Se spune că un grafic este ciclic dacă și numai dacă există cel puțin un ciclu.Graficul aciclic:Un grafic care are cicluri zero este denumit grafic aciclic.Grafic finit:Un grafic cu un număr finit de vârfuri și muchii este cunoscut ca un grafic finit.Grafic infinit:Un grafic cu un număr infinit de vârfuri și muchii este cunoscut ca un grafic infinit.Grafic bipartit:Un graf în care vârfurile pot fi împărțite în mulțimi independente A și B și toate vârfurile mulțimii A ar trebui să fie conectate numai la vârfurile prezente în mulțimea B cu unele muchii este numit un graf bipartit.Grafic plan:Se spune că un grafic este un plan dacă îl putem desena într-un singur plan cu două muchii care se intersectează.Graficul Euler:Se spune că un graf este Euler dacă și numai dacă toate vârfurile sunt grade pare.Graficul hamiltonian:Un graf conectat format dintr-un circuit hamiltonian este cunoscut sub numele de graf hamiltonian.

Câteva aplicații ale graficelor:

  1. Graficele ne ajută să reprezentăm rute și rețele în aplicații de transport, călătorii și comunicații.
  2. Graficele sunt folosite pentru a afișa rute în GPS.
  3. Graficele ne ajută, de asemenea, să reprezentăm interconexiunile din rețelele sociale și din alte aplicații bazate pe rețea.
  4. Graficele sunt utilizate în aplicațiile de cartografiere.
  5. Graficele sunt responsabile pentru reprezentarea preferințelor utilizatorilor în aplicațiile de comerț electronic.
  6. Graficele sunt folosite și în rețelele de utilități pentru a identifica problemele puse corporațiilor locale sau municipale.
  7. De asemenea, graficele ajută la gestionarea utilizării și disponibilității resurselor într-o organizație.
  8. Graficele sunt, de asemenea, folosite pentru a realiza hărți de legături cu documente ale site-urilor web pentru a afișa conectivitatea dintre pagini prin hyperlinkuri.
  9. Graficele sunt, de asemenea, folosite în mișcările robotice și rețelele neuronale.

Operații de bază ale structurilor de date

În secțiunea următoare, vom discuta diferitele tipuri de operațiuni pe care le putem efectua pentru a manipula datele din fiecare structură de date:

    Traversare:Parcurgerea unei structuri de date înseamnă accesarea fiecărui element de date exact o dată, astfel încât să poată fi administrat. De exemplu, parcurgerea este necesară în timp ce se imprimă numele tuturor angajaților dintr-un departament.Căutare:Căutarea este o altă operație de structură a datelor care înseamnă găsirea locației unuia sau mai multor elemente de date care îndeplinesc anumite constrângeri. Un astfel de element de date poate fi prezent sau nu în setul dat de elemente de date. De exemplu, putem folosi operația de căutare pentru a găsi numele tuturor angajaților care au o experiență de peste 5 ani.Inserare:Inserarea înseamnă inserarea sau adăugarea de noi elemente de date la colecție. De exemplu, putem folosi operația de inserare pentru a adăuga detaliile unui nou angajat pe care compania l-a angajat recent.Ștergere:Ștergerea înseamnă eliminarea sau ștergerea unui anumit element de date din lista dată de elemente de date. De exemplu, putem folosi operația de ștergere pentru a șterge numele unui angajat care a părăsit locul de muncă.Triere:Sortarea înseamnă aranjarea elementelor de date fie în ordine crescătoare, fie în ordine descrescătoare, în funcție de tipul de aplicație. De exemplu, putem folosi operația de sortare pentru a aranja în ordine alfabetică numele angajaților dintr-un departament sau pentru a estima primii trei performanți ai lunii prin aranjarea performanței angajaților în ordine descrescătoare și extragerea detaliilor primilor trei.Combina:Merge înseamnă a combina elemente de date din două liste sortate pentru a forma o singură listă de elemente de date sortate.Crea:Create este o operațiune utilizată pentru rezervarea memoriei pentru elementele de date ale programului. Putem efectua această operație folosind o instrucțiune de declarație. Crearea structurii de date poate avea loc fie în următoarele:
    1. Timp de compilare
    2. Timp de rulare
      De exemplu, cel malloc() funcția este utilizată în limbajul C pentru a crea o structură de date.
    Selecţie:Selectarea înseamnă selectarea unei anumite date din datele disponibile. Putem selecta orice date specifice prin specificarea condițiilor din interiorul buclei.Actualizați:Operația de actualizare ne permite să actualizăm sau să modificăm datele din structura de date. De asemenea, putem actualiza orice date specifice prin specificarea unor condiții în interiorul buclei, cum ar fi operația de selecție.Despicare:Operația de împărțire ne permite să împărțim datele în diferite subpărți, scăzând timpul total de finalizare a procesului.

Înțelegerea tipului de date abstracte

Conform Institutul Național de Standarde și Tehnologie (NIST) , o structură de date este un aranjament de informații, în general în memorie, pentru o mai bună eficiență a algoritmului. Structurile de date includ liste legate, stive, cozi, arbori și dicționare. Ar putea fi, de asemenea, o entitate teoretică, cum ar fi numele și adresa unei persoane.

Din definiția menționată mai sus, putem concluziona că operațiunile din structura datelor includ:

leu în comparație cu un tigru
  1. Un nivel ridicat de abstracții, cum ar fi adăugarea sau ștergerea unui articol dintr-o listă.
  2. Căutarea și sortarea unui articol dintr-o listă.
  3. Accesarea articolului cu cea mai mare prioritate dintr-o listă.

Ori de câte ori structura de date efectuează astfel de operațiuni, este cunoscută ca un Tip de date abstracte (ADT) .

Îl putem defini ca un set de elemente de date împreună cu operațiunile asupra datelor. Termenul „rezumat” se referă la faptul că datele și operațiunile fundamentale definite pe acesta sunt studiate independent de implementarea lor. Include ce putem face cu datele, nu cum o putem face.

O implementare ADI conține o structură de stocare pentru a stoca elementele de date și algoritmii pentru funcționarea fundamentală. Toate structurile de date, cum ar fi o matrice, o listă legată, o coadă, o stivă etc., sunt exemple de ADT.

Înțelegerea avantajelor utilizării ADT-urilor

În lumea reală, programele evoluează ca o consecință a noilor constrângeri sau cerințe, astfel încât modificarea unui program necesită în general o modificare a uneia sau mai multor structuri de date. De exemplu, să presupunem că vrem să inserăm un câmp nou în înregistrarea unui angajat pentru a ține evidența mai multor detalii despre fiecare angajat. În acest caz, putem îmbunătăți eficiența programului prin înlocuirea unui Array cu o structură Linked. Într-o astfel de situație, rescrierea fiecărei proceduri care utilizează structura modificată este nepotrivită. Prin urmare, o alternativă mai bună este separarea unei structuri de date de informațiile sale de implementare. Acesta este principiul din spatele utilizării tipurilor de date abstracte (ADT).

Unele aplicații ale structurilor de date

Următoarele sunt câteva aplicații ale structurilor de date:

  1. Structurile de date ajută la organizarea datelor în memoria unui computer.
  2. Structurile de date ajută și la reprezentarea informațiilor în baze de date.
  3. Data Structures permite implementarea algoritmilor de căutare prin date (De exemplu, motorul de căutare).
  4. Putem folosi Structurile de date pentru a implementa algoritmi de manipulare a datelor (De exemplu, procesoare de text).
  5. De asemenea, putem implementa algoritmi de analiză a datelor folosind Structuri de date (De exemplu, mineri de date).
  6. Structurile de date acceptă algoritmi pentru a genera datele (De exemplu, un generator de numere aleatorii).
  7. Structurile de date acceptă, de asemenea, algoritmi de comprimare și decomprimare a datelor (De exemplu, un utilitar zip).
  8. De asemenea, putem folosi Structuri de date pentru a implementa algoritmi de criptare și decriptare a datelor (De exemplu, un sistem de securitate).
  9. Cu ajutorul Data Structures, putem construi software care poate gestiona fișiere și directoare (De exemplu, un manager de fișiere).
  10. De asemenea, putem dezvolta software care poate reda grafică folosind Structuri de date. (De exemplu, un browser web sau un software de randare 3D).

În afară de acestea, așa cum am menționat mai devreme, există multe alte aplicații ale structurilor de date care ne pot ajuta să construim orice software dorit.