Duomenų struktūra: Skirtumas tarp puslapio versijų

Ištrintas turinys Pridėtas turinys
Nėra keitimo santraukos
S Atmestas 193.219.83.99 pakeitimas, grąžinta paskutinė versija (WikitanvirBot keitimas)
Eilutė 1:
[[Vaizdas:DuomenuTipai.png|right]]
'''Duomenų darinysstruktūra''' (''duomenų tipas'') – duomenys, logiškai jungiantys keletą paprastųjų duomenų tipų (verčiųreikšmių) arba keliuskelias paprastesniuspaprastesnes duomenų dariniusstruktūras.
 
PirmiejiPirmosios duomenų dariniaistruktūros naudotinaudotos tik kaip verčiųreikšmių aibės, bet vėliau pradėti naudoti '''abstraktieji duomenų tipai''' (ADT) apibrėžia grupuojamiemsoperacijų duomenimisaibę, galimų operacijųgrupuojamiems aibęduomenimis.
 
== Savybės ==
Bendrosios duomenų tipų savybės 1972 metais suformuotos Horo (''Hoare''):
# Duomenų tipas apibrėžia klasę verčiųreikšmių, kurias gali įgyti kintamasis ar reiškinys
# Kiekviena vertėreikšmė priklauso vienam ir tik vienam duomenų tipui
# Konstantos, kintamojo ar verčiųreiškinio tipą galima nustatyti iš teksto arba iš operando pavidalo, nepriklausomai nuo verčiųreikšmių.
# Kiekvienos operacijos operandų ir rezultato tipai yra fiksuoti. Tais pačiais simboliais žymimos skirtingų tipų operacijos laikomos daugiarvertėmisdaugiareikšmėmis ir žymi skirtingas operacijas (pavyzdžiui, sudėtis „+“).
# Duomenų tipo verčiųreikšmių savybės ir su vertėmisreikšmėmis atliekamų operacijų savybės apibrėžiamos aksiomomis
# Duomenų tipai turi atitikmenis matematikoje ([[Dekarto sandauga]], [[aibė]], [[seka]], [[funkcija (programavimas)|funkcija]], [[rekursija]])
 
Barbara Liskov 1975 metais suformulavo tokius reikalavimus, kuriuos turi tenkinti abstraktus duomenų tipas:
# Duomenų tipo apraše turi būti apibrėžtos visos tipo vertėmsreikšmėms taikytinos operacijos
# ADT naudotojas neturi žinoti, kaip vertėsreikšmės vaizduojamos kompiuterio atmintyje
# ADT naudotojas gali operuoti tipo vertėmisreikšmėmis tik to tipo operacijomis, o ne tiesiogiai verčiųreikšmių atvaizdais atmintyje.
 
== Istorija ==
Duomenų struktūrizavimas prasidėjo atsirandant aukšto lygio [[programavimo kalba|programavimo kalboms]]. Kintamųjų tipizavimas pirmą kartą įvestas [[Fortran]] kalboje ([[1953]]), šioje kalboje naudoti skaičių tipai bei masyvai. Algol-60 išplėtė masyvo panaudojimą neribodami indeksų ir matmenų. [[Cobol]] ([[1961]]) įvesti tipai simbolių eilutei, įrašui, failuibylai saugoti. PL/1 ([[1965]]) leido laisvą verčiųreikšmių struktūrinimą, rodykles. Simula-67 pirmoji eksperimentinė kalba, kurioje įvesta [[klasė (programavimas)|klasė]]. Algol-68 (1973) ir [[Pascal]] (1970) kalbose įvestas tipų vardinimas, Pascal taip pat įvestas tipų sisteminimas. Ada (1983) plačiau pradėti naudoti abstraktieji duomenų tipai.
 
== Skirstymas ==
Duomenys pagal struktūrinimo laipsnį skirstomi į dvi klases – '''paprastuosius''' ir '''struktūrinius duomenų''' tipus. Paprastųjų tipų vertėsreikšmės nedalomos, o struktūriniai sudaryti iš kelių paprastųjų ar struktūrinių verčiųreikšmių. Struktūriniai duomenų tipai, kurių realizacija paslėpta, o vertėmisreikšmėmis manipuliuoti galima tik naudojant apibrėžtą operacijų aibę, vadinami abstrakčiaisiais duomenų tipais.
 
Kai kurie dažniau naudojami duomenų tipai ir dariniaistruktūros:
* Paprastieji tipai
** Loginis tipas – paprasčiausias duomenų tipas, turintis dvi vertesreikšmes (teisinga ar klaidinga). Galimos [[Būlio algebra|Būlio algebros]] apibrėžtos operacijos.
** Vardinis tipas – diskretus tipas, kai tipo apraše išvardinamos visos galimos vertėsreikšmės
** Simbolinis tipas – diskretus tipas, kurio galimos vertėsreikšmės – simboliai
** Atkarpos tipas – kai aprašomos kraštutinės vertėsreikšmės (apatinis ir viršutinis rėžiai) tam tikroje aibėje (sveikųjų skaičių, simbolių)
** Sveikųjų skaičių tipas – galimos vertėsreikšmės iš [[sveikieji skaičiai|sveikųjų skaičių]] aibės.
** Realiųjų skaičių tipas – teoriškai galimos vertėsreikšmės iš realiųjų skaičių aibės, tačiau praktiškai realizuojama vertėmisreikšmėmis iš mažesnės [[racionalieji skaičiai|racionaliųjų skaičių]] aibės.
* Struktūriniai duomenų tipai
** Alternatyva – aprašomi keli tipai, tačiau vienu metu galioja tik vieno tipo vertėreikšmė.
** Rinkinys (įrašas, darinysstruktūra) – tiesioginis kelių tipų grupavimas.
** Masyvas – daugelio to paties tipo verčiųreikšmių jungimas į vieną sudėtinę vertęreikšmę. Komponentai vadinami elementais, o pasiemiami naudojant indeksus.
** [[Eilė (duomenų darinysstruktūra)|Eilė]] – daugelio to paties tipo verčiųreikšmių jungimas į vieną vertęreikšmę, kai komponentai saugomi ta tvarka, kuria buvo į eilę įdėti, o išimti iš eilės galima tik pirmą įdėtą komponentą.
** [[Tiesinis sąrašas|Sąrašas]]
** [[Medis (duomenų darinysstruktūra)|Medis]]
*** [[Krūva]]
*** [[Medis (duomenų darinysstruktūra)#Dvejetainis paieškos medis|Dvejetainis paieškos medis]]
*** [[:Kategorija:Besibalansuojantis medžiai|Besibalansuojantys medžiai]]
**** [[Raudonai-Juodas medis]]
Eilutė 46:
**** [[B medis]]
**** [[2-3-4 medis]]
** [[Grafas (duomenų darinysstruktūra)|Grafas]]
** [[Dėstymo lentelė]]
** [[Prioritėtų eilė]]
 
[[Kategorija:Duomenų dariniaistruktūros]]
 
[[ast:Tipu de datu]]