OEFENINGEN: SHIFT-ANDZOEKMETHODE OEFENINGEN
bij
ALGORITMEN en GEGEVENSSTRUCTUREN

2009-2010

  • LES 16/17                          
  • Stromen                           16/20 november 2009

    De shift-andmethode maakt uitgebreid gebruik van bitpatronen. Je krijgt van ons dan ook een klasse bitpatroon in bitpatroon.h, waarin alle belangrijke operaties in geïmplementeerd zijn (inclusief een uitschrijfoperatie voor tests). Let op: de nummering van de bits begint links: Bitpatroon::eenbit(0) geeft dus 1000000000000000000000000000000, en niet 0000000000000000000000000000001. Voor de eenvoud veronderstellen we dat de te zoeken naald hoogstens patroonlengte karakters bevat.

    Bij de shift-andmethode moet er veel werk verzet worden voor het eigenlijke zoeken kan beginnen: het opzetten van de bitpatronen. Vandaar dat dit gebeurt in de constructor. Dit is efficiënt als je dezelfde naald verschillende keren moet zoeken. De hoofding vind je in shiftand.h. Je ziet dat de zoekoperatie een queue teruggeeft met plaatsen: je gebruikt de methode meestal om alle plaatsen waar de naald voorkomt op te zoeken. Meestal worden die plaatsen daarna in volgorde verwerkt. Dus gebruik je een Queue en geen gewone Lijst.

    Als je een karakterstring meegeeft moet je ook de lengte opgeven. Op deze manier is het nulkarakter geen speciaal karakter meer. Je kan dus rustig een string als ``a\000bc'' opgeven (`\000' is het nulkarakter).

    Schrijf een programma dat een string vraagt aan de gebruiker, en dat weergeeft hoe vaak het in de bijbel voorkomt.

    We gebruiken unsigned char en niet char, omdat dit handiger is (waarom?).

    Bijkomende opgave Schrijf een programma dat hoofdletteronafhankelijk opzoekt.