logo

Abstraktūs duomenų tipai

Šiame straipsnyje mes sužinosime apie ADT, tačiau prieš suprasdami, kas yra ADT, apsvarstykime įvairius mums pateiktus integruotų duomenų tipus. Duomenų tipai, tokie kaip int, float, double, long ir tt yra laikomi integruotais duomenų tipais ir su jais galime atlikti pagrindines operacijas, tokias kaip sudėtis, atimtis, dalyba, daugyba ir tt Dabar gali būti situacija, kai mums reikia operacijų, skirtų mūsų vartotojo apibrėžtam duomenų tipui, kurias reikia apibrėžti. Šios operacijos gali būti apibrėžtos tik tada, kai mums jų reikia. Taigi, norėdami supaprastinti problemų sprendimo procesą, kartu su jų operacijomis galime kurti duomenų struktūras, o tokios duomenų struktūros, kurios nėra įmontuotos, yra žinomos kaip abstrakčių duomenų tipas (ADT).

linux kaip pervardyti katalogą

Abstract Data type (ADT) yra tipas (arba klasė), skirtas objektams, kurių elgesį apibrėžia reikšmių rinkinys ir operacijų rinkinys. ADT apibrėžime minimos tik kokios operacijos turi būti atliekamos, bet ne kaip šios operacijos bus įgyvendintos. Jame nenurodyta, kaip duomenys bus tvarkomi atmintyje ir kokie algoritmai bus naudojami operacijoms įgyvendinti. Jis vadinamas abstrakčiu, nes suteikia nuo įgyvendinimo nepriklausomą vaizdą.

Tik būtiniausių dalykų pateikimo ir detalių slėpimo procesas žinomas kaip abstrakcija.



Vartotojas Taigi vartotojui tereikia žinoti, ką duomenų tipas gali padaryti, bet ne kaip jis bus įgyvendintas. Pagalvokite apie ADT kaip apie juodą dėžę, kuri slepia vidinę duomenų tipo struktūrą ir dizainą. Dabar mes apibrėžsime tris ADT Sąrašas ADT, Eilė ADT.

1. Išvardykite ADT

Vies of list

  • Duomenys paprastai saugomi raktų seka sąraše, kurį sudaro antraštės struktūra skaičiuoti , rodyklės ir palyginimo funkcijos adresas reikalingi sąrašo duomenims palyginti.
  • Duomenų mazge yra rodyklė į duomenų struktūrą ir a savireferencinis rodyklė kuris nurodo į kitą sąrašo mazgą.
  • The Išvardykite ADT funkcijas pateikta žemiau:
  • get() – grąžinti elementą iš sąrašo bet kurioje vietoje.
  • insert() – įterpkite elementą bet kurioje sąrašo vietoje.
  • pašalinti () – pašalina pirmą bet kurio elemento atvejį iš netuščio sąrašo.
  • RemoveAt() – pašalinkite elementą nurodytoje vietoje iš netuščio sąrašo.
  • pakeisti () – bet kurioje vietoje esantį elementą pakeisti kitu elementu.
  • dydis() – grąžina elementų skaičių sąraše.
  • isEmpty() – grąžina true, jei sąrašas tuščias, kitu atveju grąžina false.
  • isFull() – grąžina true, jei sąrašas pilnas, kitu atveju grąžina false.

2. Sudėkite ADT

stygų statybininkas

Krūvos vaizdas

  • „Stack ADT Implementation“ užuot saugomi kiekviename mazge, duomenų rodyklė išsaugoma.
  • Programa skiria atmintį duomenis ir adresu perduodama į kamino ADT.
  • Pagrindinis mazgas ir duomenų mazgai yra įtraukti į ADT. Skambinimo funkcija gali matyti tik žymeklį į krūvą.
  • Krūvos galvutės struktūroje taip pat yra rodyklė viršuje ir skaičiuoti šiuo metu krūvoje esančių įrašų skaičiaus.
  • push() – viename krūvos gale įterpkite elementą, vadinamą viršuje.
  • pop() – pašalinkite ir grąžinkite elementą krūvos viršuje, jei jis nėra tuščias.
  • peek() – grąžinkite elementą krūvos viršuje jo nepašalindami, jei krūva nėra tuščia.
  • dydis() – grąžina elementų skaičių krūvoje.
  • isEmpty() – grąžina true, jei krūva tuščia, kitu atveju grąžina false.
  • isFull() – grąžina true, jei krūva pilna, kitu atveju grąžina false.

3. Eilė ADT

Eilės vaizdas

du prie vieno multiplekserio
  • Eilės abstrakčių duomenų tipas (ADT) atitinka pagrindinį dėklo abstrakčių duomenų tipo dizainą.
  • Kiekviename mazge yra tuščioji rodyklė į duomenis ir nuorodos rodyklė prie kito elemento eilėje. Programos pareiga yra skirti atmintį duomenims saugoti.
  • enqueue() – įterpkite elementą eilės pabaigoje.
  • dequeue() – pašalinkite ir grąžinkite pirmąjį eilės elementą, jei eilė nėra tuščia.
  • peek() – grąžinti eilės elementą jo nepašalinus, jei eilė nėra tuščia.
  • dydis() – grąžina elementų skaičių eilėje.
  • isEmpty() – grąžina true, jei eilė tuščia, kitu atveju grąžina false.
  • isFull() – grąžina true, jei eilė pilna, kitu atveju grąžina false.

ADT savybės:

Abstrakčių duomenų tipai (ADT) – tai būdas duomenims ir tų duomenų operacijoms sujungti į vieną vienetą. Kai kurios pagrindinės ADT savybės:

  • Abstrakcija: Vartotojui nereikia žinoti duomenų struktūros įgyvendinimo, tik pateikiami esminiai dalykai.
  • Geresnis konceptualizavimas: ADT suteikia mums geresnį realaus pasaulio sampratą.
  • Tvirtas: Programa yra tvirta ir gali sugauti klaidas.
  • Inkapsuliavimas : ADT paslepia vidinę duomenų informaciją ir suteikia viešą sąsają, kad vartotojai galėtų sąveikauti su duomenimis. Tai leidžia lengviau prižiūrėti ir keisti duomenų struktūrą.
  • Duomenų abstrakcija : ADT suteikia tam tikrą abstrakcijos lygį nuo duomenų įgyvendinimo detalių. Vartotojai turi žinoti tik operacijas, kurias galima atlikti su duomenimis, o ne tai, kaip šios operacijos yra įgyvendinamos.
  • Duomenų struktūros nepriklausomumas : ADT galima įdiegti naudojant skirtingas duomenų struktūras, pvz., masyvus arba susietus sąrašus, nepažeidžiant ADT funkcionalumo.
  • Informacijos slėpimas: ADT gali apsaugoti duomenų vientisumą, leisdami prieigą tik įgaliotiems vartotojams ir operacijoms. Tai padeda išvengti klaidų ir netinkamo duomenų naudojimo.
  • Moduliškumas : ADT galima derinti su kitais ADT, kad būtų sudarytos didesnės, sudėtingesnės duomenų struktūros. Tai suteikia daugiau lankstumo ir moduliškumo programuojant.

Apskritai ADT yra galingas įrankis sistemingai ir efektyviai tvarkyti ir valdyti duomenis.

Abstrakčių duomenų tipai (ADT) turi keletą privalumų ir trūkumų, į kuriuos reikėtų atsižvelgti nusprendžiant juos naudoti kuriant programinę įrangą. Štai keletas pagrindinių ADT naudojimo pranašumų ir trūkumų:

Privalumai:

  • Inkapsuliavimas : ADT suteikia galimybę duomenis ir operacijas sujungti į vieną vienetą, todėl lengviau valdyti ir keisti duomenų struktūrą.
  • Abstrakcija : ADT leidžia vartotojams dirbti su duomenų struktūromis nežinant įgyvendinimo detalių, o tai gali supaprastinti programavimą ir sumažinti klaidų skaičių.
  • Duomenų struktūros nepriklausomumas : ADT gali būti diegiami naudojant skirtingas duomenų struktūras, todėl lengviau prisitaikyti prie kintančių poreikių ir reikalavimų.
  • Informacijos slėpimas : ADT gali apsaugoti duomenų vientisumą kontroliuodamos prieigą ir užkirsdamos kelią neteisėtiems pakeitimams.
  • Moduliškumas : ADT galima derinti su kitais ADT, kad būtų sudarytos sudėtingesnės duomenų struktūros, o tai gali padidinti programavimo lankstumą ir moduliškumą.

Trūkumai:

  • Viršutinė : ADT įdiegimas gali padidinti atminties ir apdorojimo sąnaudas, o tai gali turėti įtakos našumui.
  • Sudėtingumas : ADT gali būti sudėtinga įdiegti, ypač didelėms ir sudėtingoms duomenų struktūroms.
  • Mokymasis Kreivė: norint naudoti ADT, reikia žinių apie jų įgyvendinimą ir naudojimą, o išmokti gali prireikti laiko ir pastangų.
  • Ribotas lankstumas: Kai kurių ADT funkcionalumas gali būti ribotas arba jie gali būti netinkami visų tipų duomenų struktūroms.
  • Kaina : ADT įgyvendinimas gali pareikalauti papildomų išteklių ir investicijų, o tai gali padidinti kūrimo išlaidas.

Apskritai, ADT pranašumai dažnai nusveria trūkumus, ir jie plačiai naudojami kuriant programinę įrangą, siekiant struktūriškai ir efektyviai valdyti ir valdyti duomenis. Tačiau sprendžiant, ar naudoti ADT, svarbu atsižvelgti į konkrečius projekto poreikius ir reikalavimus.

duomenų struktūra

Iš šių apibrėžimų aiškiai matome, kad apibrėžimai nenurodo, kaip šie ADT bus pavaizduoti ir kaip bus atliekamos operacijos. Gali būti įvairių ADT įgyvendinimo būdų, pavyzdžiui, sąrašas ADT gali būti įgyvendintas naudojant masyvus arba atskirai susietą sąrašą arba dvigubai susietą sąrašą. Panašiai stack ADT ir Queue ADT gali būti įgyvendinami naudojant masyvus arba susietus sąrašus.