Verižni seznam (tudi povezani seznam, linearni seznam) I

Verižni seznam (tudi povezani seznam, linearni seznam) I

Avtor: Matija Lokar

Grafična predstavitev

(slika.jpg)

ZELO POMEMBNO

  • Ločiti med verižnim seznamom kot zaporedjem vozlov in verižnim seznamom kot podatkovno strukturo
  • Najprej bomo na verižni seznam gledali izključno kot na zaporedje vozlov!

Elementi ver. seznama

  • Elementi - vozli
  • Vozel - objekt
  • Sestavni deli

    • Prostor za podatke
    • Referenca (kazalec) na naslednjega

Vozel.py

class Vozel :
  def __init__(self, kaj=None, kam=None):
    self.podatek = kaj
    self.naslednji  = kam

  def __str__(self):
    return str(self.podatek)

Vozel

Konstruktorji razreda Vozel

  • “Goli” vozel

    • prvi = Vozel.Vozel()
  • “Osamljeni” vozel

    • sam = Vozel.Vozel(“Nimam naslednika”)
  • “Follow me”

    • takojGlavni = Vozel.Vozel(“Moja vsebina”, tiSiMojNaslednji)

Veriga treh

  • Ustvarimo tri samostojne vozle

    • prviSam = Vozel.Vozel("ABC")
    • drugiSam = Vozel.Vozel("123")
    • tretjiSam = Vozel.Vozel(333)
  • Povežimo

    • drugiSam.naslednji = prviSam
    • tretjiSam.naslednji = drugiSam
  • Ustvarimo tri vozle in jih takoj povežimo med sabo

    • prvi = Vozel.Vozel("abc")
    • drugi = Vozel.Vozel("123", prvi)
    • tretji = Vozel.Vozel(33,drugi)

Izpis

  • Izpišimo vsebino vseh treh, če poznamo referenco le na prvega

    • zacetek = tretji
    • print('Peš')
    • print(zacetek.podatek)
    • print(zacetek.naslednji.podatek)
    • print(zacetek.naslednji.naslednji.podatek)
  • Spremeni vsebino prvega v verigi

    • zacetek.podatek = "Drugače "
    • print('Po spremembi')
    • print(zacetek.podatek)
    • print(zacetek.naslednji.podatek)
    • print(zacetek.naslednji.naslednji.podatek)

Še nekaj primerov

  • Spremeni vsebino tretjega

    • zacetek.naslednji.naslednji.podatek = 42
  • 2.primer

    • V obstoječo verigo treh vozlov na začetek dodaj nov vozel
0%
0%