#ifndef PRIORITIZED_ITEM_LIST_H #define PRIORITIZED_ITEM_LIST_H #include <ruby.h> struct PrioritizedItemStruct; typedef struct PrioritizedItemStruct* PrioritizedItem; typedef struct PrioritizedItemStruct { int item; int priority; } PrioritizedItemStruct; ////////////////////////////////////////////////////////////////////////////////////// struct PrioritizedItemListStruct; typedef struct PrioritizedItemListStruct* PrioritizedItemList; typedef struct PrioritizedItemListStruct { PrioritizedItem *priorities; int *indices; int capacity; int last; } PrioritizedItemListStruct; ////////////////////////////////////////////////////////////////////////////////////// PrioritizedItemList make_prioritized_item_list(int capacity); bool empty_prioritized_item_list(PrioritizedItemList list); bool in_prioritized_item_list(PrioritizedItemList list, int item); int next_prioritized_item(PrioritizedItemList list); void update_prioritized_item(PrioritizedItemList list, int item, int priority); void print_prioritized_item_list(PrioritizedItemList list); int get_priority(PrioritizedItemList list, int item); void free_prioritized_item_list(PrioritizedItemList list); ////////////////////////////////////////////////////////////////////////////////////// #endif