Zaporedje

Z zaporedji se srečujemo vsak dan. Ko v trgovini stojimo v vrsti, smo del zaporedja ljudi, ki čakajo na postrežbo. Ko pečemo palačinke, se ravnamo po kuharskem receptu, ki ni nič drugega kot zaporedje opravil. Dežurni učenci v šoli se prav tako menjujejo po določenem zaporedju. Tudi naš vsakdan lahko obravnavamo kot zaporedje opravil: zjutraj vstanemo, nato pozajtrkujemo, se odpravimo v šolo, ... Zaporedja nastopajo v najrazličnejših situacijah in problemih, zato je nujno, da jih znamo učinkovito predstaviti z računalnikom.

Posamezne člene zaporedja bomo imenovali elementi. Pri vrsti v trgovini so elementi posamezne stranke, elementi kuharskega recepta so posamezni koraki itd. Za zaporedja je značilno dvoje:

  • Vrstni red elementov je pomemben. To pomeni, da točno vemo, kateri element je prvi, kateri drugi itd. Če med seboj zamenjamo dva različna elementa zaporedja, dobimo drugačno zaporedje.
  • Elementi zaporedja se lahko ponavljajo.

Vaja


Zaporedja se lahko spreminjajo. Na primer vrsta v trgovini se nenehno polni in prazni. V tem zaporedju se elementi (kupci) praviloma dodajajo na koncu, odvzemajo pa na začetku. Vendar pa to ni nujno: lahko se komu »mudi« in pozabi na bonton, nekdo drug pa se spomni, da mora kupiti še kokto, ko se za njim nabere že lepa kolona. Če torej želimo zaporedja predstaviti v računalniku, moramo upoštevati možnost vstavljanja in odvzemanja elementov, in to na poljubnem mestu.

Kako bi lahko zaporedje predstavili? Možnost, ki smo jo dejansko že spoznali, je tabela elementov zaporedja. Python ponuja celo vrsto programerskih pripomočkov za delo s tabelami, vendar pa niso vsi časovno učinkoviti. Zato bomo v tej učni enoti spoznali še nekoliko drugačno predstavitev zaporedja – povezani seznam. Povezani seznam odpravlja glavne slabosti tabel, po drugi strani pa tudi sam ni brez njih.

Tabela elementov zaporedja in povezani seznam sta dve različni podatkovni strukturi za predstavitev zaporedja. Podatkovna struktura je način, kako podatke v računalniku organiziramo (zapišemo, hranimo, povežemo med seboj ipd.), da bi bile operacije na njih (npr. dostop do elementov, vstavljanje in odstranjevanje elementov itd.) čim učinkovitejše. Pri tem imamo dostikrat več možnosti, saj so različne podatkovne strukture lahko učinkovite za različne operacije.

V računalništvu se za predstavitev nekega koncepta iz realnega ali matematičnega sveta (kot je npr. zaporedje) s pomočjo podatkovne strukture pogosto uporablja izraz implementacija. Tabela elementov in povezani seznam sta torej dve različni implementaciji zaporedja. Izraz implementacija bomo uporabili tudi takrat, ko bomo programirali posamezne operacije (npr. dodajanje na začetek pri povezanem seznamu) v obliki pythonovih funkcij. Rekli bomo, da funkcija implementira operacijo. (Tujkam se v računalništvu žal ne moremo povsem izogniti ...)