/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_priority_queue.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: thrieg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/19 14:51:31 by thrieg #+# #+# */ /* Updated: 2025/02/16 19:05:58 by thrieg ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef FT_PRIORITY_QUEUE_H # define FT_PRIORITY_QUEUE_H # include "libft.h" typedef struct s_priority_queue_node { void *data; size_t priority; } t_priority_queue_node; typedef struct s_priority_queue { t_priority_queue_node *nodes; size_t size; size_t capacity; int (*compare)(void *, void *); } t_priority_queue; void ft_insert_pq( t_priority_queue *pq, void *data, size_t priority); t_priority_queue *create_priority_queue( int capacity, int (*compare)(void *, void *)); void *peek(t_priority_queue *pq); void *dequeue(t_priority_queue *pq); void free_pq(t_priority_queue *pq); #endif