Skip to content

Instantly share code, notes, and snippets.

@Hultner
Created May 11, 2015 19:16
Show Gist options
  • Save Hultner/a5793783a0cc81e74700 to your computer and use it in GitHub Desktop.
Save Hultner/a5793783a0cc81e74700 to your computer and use it in GitHub Desktop.
blib
// Filen queue.h
// Makrot DATA skall ange typen fšr sŒdana data som skall lŠggas i kšn.
// Det bšr ha definierats av anvŠndaren, annars sŠtts det hŠr till void.
#ifndef DATA
#define DATA void
#endif
#ifndef QUEUE_H
#define QUEUE_H
struct qstruct; // anger att qstruct och qiteratorstruct
struct qiteratorstruct; // definieras pŒ annat stŠlle
typedef struct qstruct *Queue; // typerna Queue och Iterator
typedef struct qiteratorstruct *Iterator; // skall utnyttjas av anvŠndaren
Queue new_queue(); // allokerar minnesutrymme fšr en ny kš
void delete_queue(Queue q); // tar bort kšn helt och hŒllet
void clear(Queue q); // tar bort kšelementen men behŒller kšn
int size(Queue q); // ger kšns aktuella lŠngd
void add(Queue q, int priority, DATA *d); // lŠgger in d pŒ rŠtt plats
DATA *get_first(Queue q); // avlŠser fšrsta dataelementet
void remove_first(Queue q); // tar bort det fšrsta elementet
Iterator new_iterator(Queue q); // allokerar utrymme fšr en ny iterator
void delete_iterator(Iterator it); // tar bort iteratorn
void go_to_first(Iterator it); // gŒr till kšns fšrsta element
void go_to_last(Iterator it); // gŒr till kšns sista element
void go_to_next(Iterator it); // gŒr till till nŠsta element
void go_to_previous(Iterator it); // gŒr till fšregŒende element
DATA *get_current(Iterator it); // ger pekare till aktuellt dataelementet
int is_valid(Iterator it); // returnerar 0 om iteratorn inte Šr giltlig,
// dvs inte refererar nŒgot element, annars 1.
void change_current(Iterator it, DATA *d); // Šndrar aktuellt dataelementet
void remove_current(Iterator it); // tar bort aktuellt dataelement
void find(Iterator it, DATA *d); // sšker d, iteratorn kommer att
// referera till *d eller vara ogiltlig.
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment