Advertisement
Guest User

minqueue.h

a guest
Feb 15th, 2016
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1. #ifndef minqueue_h
  2. #define minqueue_h
  3. #endif
  4.  
  5. #include <stdbool.h>
  6. /* Definizioni per muoversi nell'albero */
  7. #define parent(i) ((i+1)/2 - 1) /* Zero based! Tolgo 1 a tutti */
  8. #define left(i) (2*(i+1) - 1)
  9. #define right(i) (2*(i+1))
  10.  
  11. // Tipo dei dati memorizzati nella min-coda
  12. struct _queueelem {
  13.     int key;
  14.     int parent;
  15.     int nodo;
  16. };
  17. typedef struct _queueelem type;
  18.  
  19. /* Operazioni sulla coda */
  20. // Costruisce uno heap di minimo vuoto
  21. void heap_init();
  22. // Libera la memoria occupata dallo heap
  23. void heap_destroy();
  24. // Restituisce ed elimina il minimo
  25. type extract_min();
  26. // Restituisce il minimo
  27. type min();
  28. // Inserisce un nuovo elemento nello heap
  29. bool enqueue(type);
  30. // Restituisce la dimensione corrente dello heap
  31. int heapsize();
  32. // Restituisce true se la coda è vuota
  33. bool empty_queue();
  34. // Cambia la priorità di un elemento già presente
  35. void change_priority(type, int);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement