Datastructuren

Waarom leren we datastructuren

  • datastructuren versenellen processen
  • ze zijn intuitief en werken makkelijk

Wanneer gebruiken we datastructuren

  • Het netwerk van vrienden op facebook zit in een datastructuur(Graph)
  • Het telefoonboek in je telefoon zit in een datastructuur (Dictionary)
  • De beschrijving van afstamming (fylogenetische boom)

Lijsten

  • in python hebben we lists

  • lists zijn makkelijk om lineaire data op te slaan

  • in de informatica spreken we meestal over arrays

  • lijsten zijn geordend

  • lijsten hebben als nadeel dat het niet heel snel zoeken is naar een item als je de index niet kent

Dictionaries

  • In python kennen we dictionaries
  • Dictionaries heten officieel Hashmaps
  • een hashmap maakt het mogelijk om het snel een waarde terug te vinden
  • hashmaps maken gebruik van een sleutel-waarde combinatie.

Kenmerken van een dictionary

  • Een dictionary is ongeordend
  • Bevat altijd een sleutel-waarde combinatie
  • De waarde mag zelf wel weer een complexe datastructuur zijn als een list, set of dictionary
  • De snelheid van het retourneren van een waarde is onafhankelijk van de grootte van de dictionary

Waarom dictionaries

Sets

We kunnen in python met verzamelingen werken ne met set operatoren bewerkingen op uitvoeren

PythonBetekenis
UnionSamenvoeging
intersectionOverlap
DifferenceVerschil
![[INF pwp 3.pdf#page=26page=26]]

Set manipulatie

Creatie van een Set

een Set maak je met het sleutelwoord set

mijnSet = set(['apen', 'noten'])

Toevoegen van waardes

mijnSet.add('miezen')

Sets bestaan uit unieke waardes

Set operations

Bij een symmetric_difference verkrijg je van beide sets wat niet in de overlap zit.

StatementActie
s1.union(s2)Retourneert een set alle items in s1 en s2
s1.intersection(s2)Retourneert een set van items die zowel in s1 als s2 voorkomen
s1.difference(s2)Retourneert een set van items in s1 die niet in s2 voorkomen
s1.symmetric_difference(s 2)Retourneert een set van items die niet in s1 en niet in s2 voorkomen
s1.issubset(s2)Retourneert True als alle items in s1 zich ook in s2 bevinden
s1.issupersubset(s2)Retourneert True als alle items in s2 zich ook in s1 bevinden

Kenmerken sets

  • Sets bevatten altijd unieke waardes
  • Sets zijn ongeordend: de volgorde waarin waardes voorkomen is willekeurig
  • Sets mogen zowel getallen als strings bevatten
  • Sets zijn zeer geschikt voor het vergelijken van verzameling

Serializing objects

  • Met serialization bevries je objecten (datastructuren) en kun je deze opslaan in een bestand.
  • Serialization heeft tot doel objecten tijdelijk op te slaan en later weer te kunnen gebruiken.

Kenmerken Serialization

  • Objecten en datastructuren worden tijdelijk opgeslagen voor gebruik later
  • In Python wordt niet gesproken over serialization maar over pickling (op zuur zetten)