Što su strukture podataka?

Struktura podataka je softverska jedinica koja vam omogućuje spremanje i obradu mnogo istih ili logički povezanih informacija u računalnim uređajima. Ako želite dodati, pronaći, izmijeniti ili brisati podatke, struktura će osigurati određeni paket opcija, što je njegovo sučelje.

Što uključuje koncept strukture podataka?

Struktura podataka

Ovaj pojam može imati nekoliko bliskih, ali još uvijek prepoznatljivih značenja. To su:

  • apstraktni tip;
  • provedba apstraktnog tipa informacija;
  • Primjer tipa podataka, na primjer, određeni popis.

Ako govorimo o strukturi podataka u kontekstu funkcionalnog programiranja, onda je to posebna jedinica koja se sprema kad dođe do promjena. Može se opisati neformalno kao jedna struktura, unatoč činjenici da mogu postojati različite verzije.

Što čini strukturu?

Struktura podataka formirana je pomoću vrsta informacija, veza i operacija na njima u određenom programskom jeziku. Vrijedno je reći da su različite vrste struktura pogodne za različite primjene, a neke, na primjer, imaju vrlo usku specijalizaciju i pogodne su samo za izradu utvrđenih zadataka.

Ako uzmemo B stabla, oni su obično prikladni za formiranje baza podataka i samo za njih. Istodobno, tablice s hashom upotrebljavaju se svugdje u praksi za izradu različitih rječnika, na primjer, za prikazivanje imena domena na internetskim adresama računala, a ne samo za formiranje baza podataka.

Tijekom razvoja određenog softvera, složenost implementacije i kvaliteta funkcionalnosti programa izravno ovise o pravilnoj primjeni podatkovnih struktura. To razumijevanje stvari potaknulo je razvoj formalnih razvojnih tehnika i programskih jezika, gdje su strukture, a ne algoritmi, smješteni na vodeće položaje u arhitekturi programa.

Treba napomenuti da mnogi programski jezici imaju uspostavljenu vrstu modularnosti, što omogućuje da se strukture podataka sigurno koriste u različitim aplikacijama. Jaki primjeri su Java, C # i C ++ jezici. Sada je klasična struktura korištenih podataka prikazana u standardnim bibliotekama programskih jezika ili izravno već ugrađena u sam jezik. Na primjer, ova struktura stola tablice ugrađena je u Lua, Python, Perl, Ruby, Tcl i druge. Široka je upotreba standardne biblioteke predložaka u C + +.

Usporedimo strukturu u funkcionalnom i imperativnom programiranju

Lijepa slika s tipkovnicom

Treba odmah odrediti da je teže dizajnirati strukture za funkcionalne jezike nego za imperativne jezike, barem postoje dva razloga:

  1. U stvari, sve strukture često koriste zadaću u praksi, koja se ne koristi u čisto funkcionalnom stilu.
  2. Funkcionalne strukture su fleksibilni sustavi. U imperativnom programiranju, starije verzije se jednostavno zamjenjuju novim verzijama, ali u funkcionalnom programiranju sve funkcionira dok je radila. Drugim riječima, u imperativnim programskim strukturama su prolazne, au funkcionalnoj su trajne.

Što uključuje strukturu?

Često podaci s kojima rade programi pohranjeni su u nizovima ugrađenim u programskom jeziku, konstantnom ili u promjenjivoj duljini. Polje je jednostavna struktura s informacijama, no neki zadaci zahtijevaju veću učinkovitost nekih operacija, pa se koriste i druge složenije strukture.

Najjednostavniji niz prikladan je za često pristupanje instaliranim komponentama pomoću indeksa i njihovo mijenjanje i uklanjanje elemenata iz srednje funkcije prema načelu O (N) O (N). Ako trebate izbrisati stavke za rješavanje određenih zadataka, morat ćete upotrijebiti drugu strukturu. Na primjer, binarno stablo (std :: set) omogućuje da se to učini u O (logN) O (log⁡N), ali ne podržava indeksiranje, samo zaobilazeći elemente i pretražuje se vrijednost. Dakle, može se reći da se struktura razlikuje u operacijama koje je u stanju izvesti, kao i brzinu njihova izrade. Na primjer, razmislite o najjednostavnijim strukturama koje ne pružaju učinkovitost, ali imaju dobro definiran skup podržanih operacija.

stog

To je jedna od vrsta podatkovnih struktura predstavljenih u obliku ograničenog elementarnog polja. Klasični stog podržava samo tri opcije:

  • Dodajte element u snop (složenost: O (1) O (1)).
  • Izvlačenje stavke iz snopa (složenost: O (1) O (1)).
  • Provjerite je li stog prazan ili ne (Složenost: O (1) O (1)).

Da biste pojasnili načelo stogova, u praksi možete primijeniti analogiju s kolačićima. Zamislite da se na dnu posude nalazi nekoliko keksa. Na katu možete staviti još par komada ili možete, naprotiv, uzeti jedan kolačić s vrha. Ostatak kolačića zatvorit će se na vrhu, a nećete znati ništa o njima. Ovo je slučaj sa stogom. Za opis koncepta koristi se skraćenica LIFO (Last In, First Out), koja naglašava da će komponenta koja je stigla u posljednji stog biti prva i izdvojena iz njega.

Red

Vizualna demonstracija reda

Ovo je još jedna vrsta strukture podataka koja podržava isti skup opcija kao stog, no ima suprotnu semantiku. Za opis reda primjenjuje se kratica FIFO (Prvo, Prvo), jer je element koji je prvi put dodan prvo izvađen. Naziv strukture govori za sebe - princip rada potpuno se podudara s redovima koji se mogu vidjeti u trgovini, supermarketu.

prosinac

Ovo je druga vrsta strukture podataka, koja se također naziva red s dva kraja. Opcija podržava sljedeći skup operacija:

  • Dodajte element na početak (složenost: O (1) O (1)).
  • Izvadite komponentu od početka (složenost: O (1) O (1)).
  • Dodavanje elementa do kraja (složenost: O (1) O (1)).
  • Ekstrakt elementa od kraja (složenost: O (1) O (1)).
  • Provjerite jesu li palube prazne (složenost: O (1) O (1)).

arena

Popis slika

Ova struktura podataka definira niz linearno povezanih komponenti za koje su dopuštene i brisane operacije dodavanja komponenata na bilo kojem mjestu na popisu. Linearni popis određuje pokazivač na početak popisa. Tipične operacije na popisima: indeksiranje, pretraživanje određene komponente, umetanje elementa, brisanje komponente, kombiniranje dva popisa u jednu cjelinu, podjelu popisa u parove i tako dalje. Vrijedno je spomenuti da u linearnom popisu, uz prvu, postoji prethodna komponenta za svaki element, bez posljednjeg. To znači da su komponente popisa u uređenom stanju. Da, obrada takvog popisa nije uvijek prikladna, jer nema mogućnosti kretanja u suprotnom smjeru - od kraja popisa do početka. Međutim, u linearnom popisu možete korak po korak proći kroz sve komponente.

Postoje i popisi prstenova. To je iste strukture kao i linearni popis, ali ima dodatnu vezu između prve i zadnje komponente. Drugim riječima, sljedeća komponenta je prva komponenta.



Na ovom popisu elementi su jednaki. Raspodjela prvog i posljednjeg je uvjetovanost.

stabla

Slika stabla

Ova kombinacija dijelova koji se nazivaju čvorova, koji je glavni sastojak (a) u obliku korijena, a svi ostali podijeljen u više od razdvojenih elemenata. Svaki skup je stablo, a korijen svakog stabla je potomak korijena stabla. Drugim riječima, sve komponente su međusobno odnosa roditelj-dijete. Rezultat se može vidjeti hijerarhijsku strukturu čvorova. Ako čvorovi nemaju potomke, oni su pozvani lišće. Iznad drveća definira operacije kao što su dodavanje komponente i njegovo uklanjanje, zaobilazeći komponentu za pretraživanje. Posebnu ulogu u računalnoj znanosti igra binarna stabla. Što je to? Ovo je poseban slučaj stabla, gdje svaki čvor može imati više od nekoliko potomaka, koji su korijeni s lijeve i desne podstablo. Ako, osim čvorovima stabla se izvodi još jedan uvjet da su sve vrijednosti komponenti lijevo podstablo je manja od korijena vrijednosti i vrijednosti komponenata pravo podstablo veće korijen, stablo se zove binarno stablo za pretraživanje, a to je dizajniran za brzo pronaći stavke. Kako algoritam pretraživanja radi u ovom slučaju? Željena vrijednost u usporedbi s vrijednošću korijena i ovisno o rezultatu pretraživanja ili završava ili se nastavlja, ali samo na lijevoj ili desnoj podstablo. Ukupan broj usporedbe neće prelaziti visinu stabla (najveći broj komponenti u putu od korijena do lista).

broji

Slika grafikona

Grafovi su zbirka komponenti koje se nazivaju vertices, zajedno s skupom odnosa između tih vrhova, koji se nazivaju rubovi. Grafičko tumačenje ove strukture predstavljeno je u obliku skupa točaka koje odgovaraju vršcima, a neke su parove povezane linijama ili strelicama, što odgovara rubovima. Potonji slučaj ukazuje da se grafikon treba nazvati orijentiranim.

Grafovi mogu opisati objekte bilo koje strukture, oni su glavno sredstvo za opisivanje složenih struktura i funkcioniranja svih sustava.

Više informacija o sažetoj strukturi

Tip na računalu

Da biste izradili algoritam, trebate formalizirati podatke ili, drugim riječima, trebate unijeti podatke na određeni model podataka koji je već istražen i napisan. Kad se pronađe model, može se tvrditi da se uspostavlja apstraktna struktura.

To je glavna struktura podataka, koja prikazuje atribute, kvalitetu objekta, odnos između komponenti objekta i operacije, što se može učiniti nad njom. Glavni zadatak je pronaći i prikazati obrasce za predstavljanje informacija koje su udobne za korekciju računala. Vrijedno je spomenuti da se računalna znanost kao točna znanost ponaša s formalnim predmetima.

Analiza struktura podataka provodi se sljedećim objektima:

  • Integers i stvarni brojevi.
  • Booleove vrijednosti.
  • Simboli.

Za obradu svih elemenata na računalu postoje odgovarajući algoritmi i strukture podataka. Tipični objekti mogu se kombinirati u složene strukture. Na njima možete dodati operacije, pravila za određene komponente ove strukture.

Struktura organizacije podataka uključuje:

  • Vektori.
  • Dinamičke strukture.
  • Tablica.
  • Višedimenzionalni polja.
  • Grafovi.

Ako su svi elementi uspješno odabrani, to će biti ključ za stvaranje učinkovitih algoritama i struktura podataka. Ako primijenite analogiju struktura i stvarnih objekata u praksi, možete učinkovito riješiti postojeće probleme.

Valja napomenuti da sve strukture organizacije podataka postoje zasebno u programiranju. Iznad njih mnogo se trudio u osamnaestom i devetnaestom stoljeću, kad još nije bilo računala na vidiku.

Moguće razviti algoritam u smislu apstraktnih struktura, ali za provedbu algoritma u određenom programskom jeziku je potrebno kako bi pronašli tehniku ​​za svoju izvedbu u vrste podataka subjekata koji podržavaju određeni programski jezik. Za stvaranje strukture, kao što je vektor, znak, niz slijed u mnogim programskim jezicima su klasične vrste podataka: jednodimenzionalni ili dvodimenzionalni niz, niz datoteka.

Koje su metodološke preporuke za rad s strukturama?

Bavili smo se obilježjima struktura podataka, sada bismo trebali posvetiti više pažnje razumijevanju koncepta strukture. Kada rješavate apsolutno bilo koji problem, potrebno je raditi s nekim podacima za obavljanje operacija na informacijama. Svaki zadatak ima svoj vlastiti skup operacija, ali određeni skup koristi se u praksi češće za rješavanje različitih zadataka. U ovom slučaju, korisno je doći do određenog načina organiziranja informacija, što će omogućiti što učinkovitije obavljanje tih operacija. Kada se takva metoda pojavi, možete pretpostaviti da imate "crnu kutiju" u kojoj će se pohraniti podaci određene vrste i koji će obavljati određene operacije podataka. To će odvratiti od detalja i potpuno se usredotočiti na karakteristične značajke problema. Ova "crna kutija" može se provoditi na bilo koji način, dok je potrebno nastojati što je moguće više produktivne implementacije.

Tko treba to znati?

Poznati programeri koji žele pronaći svoje mjesto na ovom području su upoznati s informacijama, ali ne znaju gdje krenuti. To su osnove svakog programskog jezika, tako da neće biti suvišno odmah saznati o strukturama podataka i nakon rada s njima na specifičnim primjerima i određenim jezikom. Ne treba zaboraviti da svaka struktura može biti obilježena logičkim i fizičkim prikazima, kao i nizom operacija na tim prikazima.

Nemojte zaboraviti: ako govorite o određenoj strukturi, onda imajte na umu njegovu logičku predstavu, jer je fizički prikaz potpuno skriven od "vanjskog promatrača".

Također, imajte na umu da je logično reprezentacija ne ovisi o programskom jeziku i iz računala, a fizički, naprotiv, ovisi o prevoditelja i računalne tehnologije. Na primjer, dvodimenzionalni niz u „Fortran” i „Pascal” može se prikazati na identičan način, a fizički prikaz istog računala u tim jezicima će biti drugačiji.

Nemojte se žuriti da poučavate određene strukture, najbolje je razumjeti njihovu klasifikaciju, upoznati se sa svim u teoriji i po mogućnosti u praksi. Važno je zapamtiti da je varijabilnost važna značajka strukture i ukazuje na statičku, dinamičku ili polu-statičku situaciju. Saznajte osnove prije nego počnete više globalnih stvari, što će vam pomoći u budućem razvoju.

Dijelite na društvenim mrežama:

Povezan
Informacijski i referentni sustav: vrste i primjeri. Kakva je ta informacija i referentni sustav?Informacijski i referentni sustav: vrste i primjeri. Kakva je ta informacija i referentni sustav?
Pregled sustava za upravljanje bazama podatakaPregled sustava za upravljanje bazama podataka
Koji su podaci? Vrste podatakaKoji su podaci? Vrste podataka
DB je ... Vrste i svojstva baze podatakaDB je ... Vrste i svojstva baze podataka
Vrste ljudske memorijeVrste ljudske memorije
Vrste podataka i kako ih obraditiVrste podataka i kako ih obraditi
Informacijska logistika i njezine funkcijeInformacijska logistika i njezine funkcije
Hijerarhijski model podatakaHijerarhijski model podataka
Model podataka mrežeModel podataka mreže
Arhitektura klijent-poslužiteljArhitektura klijent-poslužitelj
» » Što su strukture podataka?
LiveInternet