Matija Lokar: PODATKOVNE STRUKTURE VRSTA. List za mlade matematike, fizike, astronome in računalnikarje

Podobné dokumenty
Vaja 2 Iskanje z razvijanjem v širino

INFORMATIKA. Uvod v HTML - 2. del

Zahtevnejši nivo Kazalo:

Navodila za uporabo Garmin Nüvi 1200

Računalniške delavnice FMF: Delavnica MPI

Delo z datotekami v C#

zlatarna E.LECLERC Po ok Od 1O. januarja do 31. decembra 2O18

VĚČNÉ EVANGELIUM (Legenda 1240)

14/10/2015 Z Á K L A D N Í C E N Í K Z B O Ž Í Strana: 1

Intervalna ocena parametra

PRIROČNIK ZA NADALJEVALNI TEČAJ MICROSOFT WORD-A

II/490 SSZ VYPNUTO III/ OBJÍZDNÁ TRASA DO 7,5t - STÁVAJÍCÍ DZ - NAVRŽENÉ DZ IS 1 STAVBA: SILNICE II/490 FRYŠTÁK-2.A3.ETAPA

Analiza naravne svetlobe

Algoritmizace a programování

Algoritmizace a programování

BREZ ELEKTRONSKE POŠTE NE GRE!

1 GIF Animator. 1.1 Opis programa Lastnosti zmogljivosti programa. Active GIF Creator 2.18 je program za obdelavo GIF datotek.

Spajanje dokumentov v Word-u 2007

POSEBNI POGOJI ZA PROMOCIJE PAKETOV KOMBO FEBRUAR (v nadaljevanju: Posebni pogoji promocije Kombo Februar)

Výroba ozubených kol. Použití ozubených kol. Převody ozubenými koly a tvary ozubených kol

PRILOGA ŠT. 1: Gasilski znak

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

o d e vz d á v e j t ek o m p l e t n í, / n e r o z e b r a n é /, a b y s e t y t o

7. Stropní chlazení, Sálavé panely a pasy - 1. část

Skripta za Programiranje 2 Rekurzija Delo z datotekami

Ocena požarnih nevarnosti, tveganj, ogroženosti in obremenitev. Ciril Tomše VKGČ II. stopnje

j k k k i k k k k k j k j j j j ij i k k jk k k jk k j j i

Inventura v osnovnih sredstvih

Zend Framework Object Relation Model. Dr Nenad Kojić Marko M Spasojević inž. spec


OPTIMUM M A S C H I N E N - G E R M A N Y

Poslední nenulová číslice faktoriálu

Sbírka obrazů Galerie Klatovy / Klenová v letech

Računalništvo in informatika Računalniška omrežja. Računalniška omrežja. Osnovni pojmi. prof. Andrej Krajnc univ. dipl.inž.

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

DIO etapa 1.1P+L (Přehledná situace)

ČJ Vr 1.ABC. ZM Ok 3.A. MA Fl 1.ABC. TV Sm TV. ČJ Kn 1.ABC. TV Sm TV. CH Hr 1.ABC. ICT Sm ICT2. PK Šp ICT1. ZE Bo 3.B. CH Hr. ZM Ok 3.

část 200.pdf.www Platnost od Otevřeno Vzorkovna-prodejna O - NA OBJEDNÁVKU obchod@eltecom.eu, Doporučené prodejní ceny

PLATÍ OD SPECIÁLNÍ NABÍDKA PRO POCIT SVOBODY: DŽÍNY. 599,- Běžná cena 799,- Jen do DŽÍNY OD 299,-

Přidávání animací do programů


MIFID_FORMS_LIST_SLV

Ú v o d K ojení Energie / Tekutiny / Bílkoviny / Tuky / Vitamíny a minerály / Zakázané ovoce"

Křížová cesta - postní píseň

Šroubovice a šroubové plochy

Stvr ze ní pří jmu při pouštěcí znám ky. For mu lá ře s vý zvou k osob ní mu vy zved nu tí při pouště cí znám ky

B-panel. C-panel. S-panel. Osnovni enobarvni paneli. Zasteklitve. strani strani strani

NAŠ RAZRED SE PREDSTAVI

Po vrsti z leve proti desni so obrazi Blaž, Erik, Dane, Andrej, Andraž, Bor.

NiceForm uporabniški priročnik

OBSAH ЗО 31. PEČ EM E V P E K Á R N Ě 11 C hléb z podm áslí ЗО. C hléb z Jizerky

Ložnice Carolina. Provedení: - masivní buk - masivní jádrový buk - masivní divoký (sukatý) dub PLATNOST CENÍKU - OD

Pravidla o poskytování a rozúčtování plnění nezbytných při užívání bytových a nebytových jednotek v domech s byty.

22, 90 11, 90 6, 50 5, 90 3, 90 6, 90 29, * * Kardinál šunka NABÍDKA PLATÍ VE DNECH

Tabulka jako pozadí na Ploše

Rukopis zelenohorský.

VODNIK ZA ČLANE-IZDAJATELJE

Zdeněk Svěrák. Jaroslav Uhlíř

Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

Magnetic Levitation Control

kapitola 2 - univerzální spojky Cobraring / spojky na PE Unidelta / Gebo / Platinum

7. V Ї 4 odstavce 2 a 3 zneяjѕт:

Biblische Lieder Op. 99, Nº 3 Biblické písně Op. 99, č. 3

Jindřiška Šindlerová. Projdi se mnou

3.cvičení. k p = {X, Y } u(x, r 1 = XA ), v(y, r 1 = XA ) u v = {A, R} q = AR. 1. Bodem A kolmici: Zvolím bod X p k(a, r 1 = XA ),

3. Regionální rozdíly v Ústeckém kraji

Autodesk Inventor 8 vysunutí

Zobrazení v rovině je předpis, který každému bodu X roviny připisuje právě jeden bod X roviny. Bod X se nazývá vzor, bod X se nazývá obraz.

CENIK OSTALIH STORITEV

Vytvoření nebo odstranění makra Excel

ZATÍŽENÍ SNĚHEM A VĚTREM

Znalectví středověké hmotné kultury referát Koňský postroj ve středověku. Alžběta Čerevková učo:

6 až 18V střídavých. Tabulka přednastavených hodnot délky nabíjení a nabíjecích proudů pro některé typy baterií.

evropskega emblema v povezavi s programi EU

Inovace a zkvalitnění výuky prostřednictvím ICT. Tváření. Název: Přesný střih. Téma: Ing. Kubíček Miroslav. Autor:

M a l t é z s k é n á m. 1, P r a h a 1

ACH 02 VZÁCNÉPLYNY. Katedra chemie FP TUL VZÁCNÉ PLYNY

snažte umístit na slunném místě, bez převislých objektů. Místo musí být chráněné

Karel Johanovský Michal Bílek. Operační paměť

Obsah: 5 KONCEPCE USPOŘÁDÁNÍ KRAJINY NÁVRH PLOŠNÉ A LINIOVÉ ZELENĚ PROSTUPNOST KRAJINY GRAFICKÁ ČÁST ÚZEMNÍ STUDIE...

Základní stavební prvky algoritmu

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Prodaja, servis, svetovanje za KRIO SAVNO in izvajanje KRIO TERAPIJE CRYO SAUNA SPACE CABIN BY CRYOMED

Získejte nové zákazníky a odměňte ty stávající slevovým voucherem! V čem jsme jiní? Výše slevy Flexibilní doba zobrazení Délka platnosti voucheru

98 Element ABB Katalog 2014 Domovní elektroinstalační materiál

EMC2399. Programové vybavení pro řízení, sběr a zpracování dat pro EMC měření spektrálním analyzátorem Aeroflex řady 2399

I/3 Benešov - Bystřice

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Abstraktní datové typy

MATEMATIKA PRIPRAVA NA NACIONALNO PREVERJANJE ZNANJA. Jana Draksler in Marjana Robič

TECHNICKÁ ZPRÁVA. V objektu je řešena rekonstrukce ulice Dobiášova jak vlastní komunikace, tak navazujícího oboustranného chodníku vč. vjezdů.

Cone 1 & 2, 21 & 7 Razsvetljava

PROVOZNÍ CHARAKTERISTIKY OTOPNÝCH TĚLES

Programovací jazyk Pascal

Sbírka úloh pro elektronickou stavebnici. Stručný popis programovacího jazyka Bascom AVR

Popis systému DATmoCONTROL - systém dálkového přepínání odbočky předřadníku svítidel

Navodila za vnos in kontrolo podatkov iz letnih poročil na poenotenih obrazcih gospodarskih družb v Excelovo preglednico

KIDS YOUNG COLLEGE. dětské rostoucí stoly 03/2016

VPS1 1/5. POPIS SIGNALIZAČNÍCH LED Červená připraveno k provozu, nebo komunikaci s PC Zelená čip přiložen (nekomunikuje s PC)

grafický manuál KDU-ČSL 2012

Transkript:

List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 15 (1987/1988) Številka 5 Strani 275 279 Matija Lokar: PODATKOVNE STRUKTURE VRSTA Ključne besede: matematika, računalništvo, podatkovne strukture, vrsta. Elektronska verzija: http://www.presek.si/15/909-lokar.pdf c 1988 Društvo matematikov, fizikov in astronomov Slovenije c 2010 DMFA založništvo Vse pravice pridržane. Razmnoževanje ali reproduciranje celote ali posameznih delov brez poprejšnjega dovoljenja založnika ni dovoljeno.

oot'-ll,\lol N'ILTI'll " 1, 1 II, _ 1_",,, _ PODATKOVNE STRUKTURE - VRSTA Kaja, Žiga in Nejc so se odpravili v kino. "Ah, že spet vrsta!" zavzdihne Kaja, ko zagleda kačo ljudi, ki se vije pred blagajno. "Ostali bomo brez kart," se ustraši Žiga. Zato se Nejc odpravi kar proti blagajni in se meni nič tebi nič postavi pred dekleti, ki ga, zaverovani v klepet, sploh ne opazita. "Mi je le uspelo," se veseli. A prezgodaj! Nekdo ga potreplja po rami in Il)U pokaže, kje je konec vrste. Kot v vsakdanjem življenju moramo pogosto tudi v računalništvu vzdrževati določen red. Tako podatke vodimo v podatkovni strukturi. V zadnji številki lanskoletnega Preseka smo se že spoznali z eno od osnovnih struktur s skladom. Ta bi našim trem prijateljem verjetno prej kar prav prišel, saj tam velja načelo "zadnji noter, prvi ven". Vendar moramo biti včasih tudi pri programiranju "pošteni" in spoštovati, da kdor prej pride, prej melje. Zato si oglejmo novo podatkovno strukturo, ki to omogoča. Imenovali jo bomo kar vrsta. Je zelo podobna skladu, saj sta obe strukturi le posebna primera splošnejše strukture z imenom urejeni seznam. Opraviti imamo torej z določenim zaporedjem podatkov. Tudi operacije nad vrsto so podobne operacijam nad skladom. Sprememba je le v vrstnem redu izločanja. Ker smo rekli, da je vrsta "poštena", bo prvi izločen tisti element, ki je v vrsto prišel prvi. Je torej FIFO (First ln First Out) seznam. Elemente vstavljamo na enem koncu vrste in jih jemljemo na drugem (začetku vrste). Vrsto elementi zapuščajo v istem vrstnem redu, kot so vanjo prihajali. V nasprotju s skladom ima vrsta torej dva konca, kjer se nekaj dogaja. Kakor smo formalno predstavili sklad, storimo tako tudi z vrsto. structure vrsta (podatki, Boolean); (,1;: struktura sklad nad poljubno zalogo vrednosti podatek.t. ) begin declare (1: pripravi prazno vrsto '(. ) pripravi: 0 ~ vrsta; ( -: vstavi podatek v vrsto in vrne novo vrsto "') vstavi : (podatek, vrsta) ~ vrsta; 275

(*vrne podatek, ki je na za če t ku vrste t. ) zač e te k; vrsta ~ podatek; (* izbriše prvi e lemen t vrste in vrne no vo vrsto :K ) odst rani : vrsta ~ vrsta ; ( ;r: ali je vrsta pr azna? )j( ) pr azna: vrsta ~ Boo lea n; where prazna(priprav i) :;= true; prazna(vstavi (p, v)) ::= false; odstrani(pripravi) ::= napaka; odstrani(vstavi(p, vl ) ::= if praznal v) then pripravi else vstavi (p, odstranil v)); začetek(prip rav i) ::= napaka; za četek(vstavi(p, v)) ::= if prazna(v) then p else začete k (v); end. Da nam bodo operacije postale bolj domače, si oglejmo, kako se obnašat a sklad in vrsta pri nas lednjem zaporedju operacij odstrani in vstav i; vstav i 3, vstav i 5, odstrani, vstav i 4, vstavi 8, vstavi 9, odstrani, odst ran i, odstrani (glej Sliko 1) Kako pa je z uporabo vrste? Kot smo že omenili, uporabljamo vrsto tam, kjer želimo po datke obravnavati v istem vrstnem redu, kot jih dobivamo. Tako vrsto uporabljamo pri simulacijah, pr i vzdrževanju vrstnega reda izpisovanja datotek na tiskalniku, pri dodeljevanju pomožnega pomnilnika... Tudi vrsto bomo predstavili s pomočjo tabele v basicu. Poznati mo ramo začetek in konec vrste te r vrstni red elementov. Ker se nam na enem koncu vrsta polni, na drugem prazni, mora biti predstavitev taka, da bomo sproščeni prostor z začetka spet uporabili za vstavljanje. Pri tem pa moramo seveda ohraniti prav ilni vrstni red. Zato tabelo vodimo krožno, po modulu velikosti. Kaj pa je spet to - po modulu velikost i? Ust rezno mesto za vstavljanje i z r a č u n am o ta ko, da najprej povečamo konec vrste za eno. Nato določimo ostanek pri de ljenjuz velikostjo vrste. (V pascalu nam to opravi vgraje na funkcija mod, v bas icu pa si jo bomo pripravili sami. Seveda mora biti basic, ki ga uporabljamo tak, da šteje polja od O dalje. Kaj pa če šteje polja od 1 dalje?) Pri tem naletimo na težavo, kako ločiti med prazno in polno vrsto. Zato se odpovemo enemu mestu v tabeli in z "začetek" označimo raje indeks zadnjega praznega mesta pred začetkom vrste. Tako je vrsta prazna, če je 276

SKLAD IZLOČEN I VR STA 3 začetek = konec in polna, če je začetek = (konec + 1) mod velikost V vrsti 5 4 8 Sli ka 1 'KONEC Sl ika 2 277

si to rej slede element i Vs, V6, V7 ' V I,. _, Vvel iko st-3, Vvel ikost-2. Sestvimo sedaj podprograme: 10 REM 20 REM pripravi vrsto velikost VELIKOST 30 REM 40 VELIKOST = '" 50 DIM VRSTA (VELIKOST) 60 ZACETEK = 1 : KONEC = 1 70 DEF FN MOD(A, B) = A - INT(A/B) JI: B 80 RETURN 100 REM 110 REM če je vrsta prazna, dobi spremenlj ivka PRAZNA 120 REM vrednost 1, drugače O 130 REM 140 PRAZNA = O 150 IF ZACETEK = KONEC THEN PRAZNA = 1 160 RETURN 200 REM 210 REM vstavi podatek ELEMENT v vrsto 220 REM 230 POM = FN MOD(KONEC + 1, VELIKOST) 2351F NOT(ZACETEK = POM) THEN GOTO 260 240 REM vrsta je polna - primerno ukrepamo 250 _.. 260 REM vrsta ni polna 270 KONEC = POM 280 VRSTA (KONEC) = ELEMENT 290 RETU RN 300 REM 310 REM briše podat ek iz vrste in ga shrani v ELEMENT 320 REM 330 IF ZACETEK = KONEC T HEN...: REM napaka, prime rno ukrepa mo 340 ZACETEK = FN MOD(ZACETEK + 1, VELIKOST) 350 ELEMENT = VRSTA(ZACETEK) 360 RETURN 278