Created
May 11, 2015 19:16
-
-
Save Hultner/a5793783a0cc81e74700 to your computer and use it in GitHub Desktop.
blib
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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