![]() |
pcb 4.1.1
An interactive printed circuit board layout editor.
|

Go to the source code of this file.
Data Structures | |
| struct | _GtsHeap |
Defines | |
| #define | PARENT(i) ((i) >= 2 ? (i)/2 : 0) |
| #define | LEFT_CHILD(i) (2*(i)) |
| #define | RIGHT_CHILD(i) (2*(i) + 1) |
Functions | |
| GtsHeap * | gts_heap_new (GCompareFunc compare_func) |
| static void | sift_up (GtsHeap *heap, guint i) |
| void | gts_heap_insert (GtsHeap *heap, gpointer p) |
| static void | sift_down (GtsHeap *heap, guint i) |
| gpointer | gts_heap_remove_top (GtsHeap *heap) |
| gpointer | gts_heap_top (GtsHeap *heap) |
| void | gts_heap_destroy (GtsHeap *heap) |
| void | gts_heap_thaw (GtsHeap *heap) |
| void | gts_heap_foreach (GtsHeap *heap, GFunc func, gpointer user_data) |
| void | gts_heap_freeze (GtsHeap *heap) |
| guint | gts_heap_size (GtsHeap *heap) |
| #define LEFT_CHILD | ( | i | ) | (2*(i)) |
Definition at line 24 of file gts/heap.c.
Referenced by sift_down().
| #define PARENT | ( | i | ) | ((i) >= 2 ? (i)/2 : 0) |
Definition at line 23 of file gts/heap.c.
Referenced by sift_up().
| #define RIGHT_CHILD | ( | i | ) | (2*(i) + 1) |
Definition at line 25 of file gts/heap.c.
Referenced by sift_down().
| void gts_heap_destroy | ( | GtsHeap * | heap | ) |
gts_heap_destroy: : a GtsHeap.
Free all the memory allocated for .
Definition at line 181 of file gts/heap.c.
References _GtsHeap::elts, and TRUE.
Referenced by partition_update().
| void gts_heap_foreach | ( | GtsHeap * | heap, |
| GFunc | func, | ||
| gpointer | user_data | ||
| ) |
gts_heap_foreach: : a GtsHeap. : the function to call for each element in the heap. : to pass to .
Definition at line 217 of file gts/heap.c.
References _GtsHeap::elts.
| void gts_heap_freeze | ( | GtsHeap * | heap | ) |
gts_heap_freeze: : a GtsHeap.
Freezes the heap. Any subsequent operation will not preserve the heap property. Used in conjunction with gts_heap_insert() and gts_heap_thaw() to create a heap in O(n) time.
Definition at line 240 of file gts/heap.c.
References _GtsHeap::frozen, and TRUE.
| void gts_heap_insert | ( | GtsHeap * | heap, |
| gpointer | p | ||
| ) |
gts_heap_insert: : a GtsHeap. : a pointer to add to the heap.
Inserts a new element in the heap.
Definition at line 79 of file gts/heap.c.
References _GtsHeap::elts, _GtsHeap::frozen, and sift_up().
Referenced by partition_update().

| GtsHeap* gts_heap_new | ( | GCompareFunc | compare_func | ) |
gts_heap_new: : a GCompareFunc.
Returns: a new GtsHeap using as a sorting function.
Definition at line 39 of file gts/heap.c.
References _GtsHeap::elts, FALSE, _GtsHeap::frozen, and _GtsHeap::func.
Referenced by partition_update().
| gpointer gts_heap_remove_top | ( | GtsHeap * | heap | ) |
gts_heap_remove_top: : a GtsHeap.
Removes the element at the top of the heap.
Returns: the element at the top of the heap.
Definition at line 134 of file gts/heap.c.
References _GtsHeap::elts, len, and sift_down().
Referenced by partition_update().

| guint gts_heap_size | ( | GtsHeap * | heap | ) |
gts_heap_size: : a GtsHeap.
Returns: the number of items in .
Definition at line 253 of file gts/heap.c.
References _GtsHeap::elts.
| void gts_heap_thaw | ( | GtsHeap * | heap | ) |
gts_heap_thaw: : a GtsHeap.
If has been frozen previously using gts_heap_freeze(), reorder it in O(n) time and unfreeze it.
Definition at line 196 of file gts/heap.c.
References _GtsHeap::elts, FALSE, _GtsHeap::frozen, and sift_down().

| gpointer gts_heap_top | ( | GtsHeap * | heap | ) |
gts_heap_top: : a GtsHeap.
Returns: the element at the top of the heap.
Definition at line 161 of file gts/heap.c.
References _GtsHeap::elts, and len.
| static void sift_down | ( | GtsHeap * | heap, |
| guint | i | ||
| ) | [static] |
Definition at line 88 of file gts/heap.c.
References c, _GtsHeap::elts, _GtsHeap::func, LEFT_CHILD, len, and RIGHT_CHILD.
Referenced by gts_heap_remove_top(), and gts_heap_thaw().
| static void sift_up | ( | GtsHeap * | heap, |
| guint | i | ||
| ) | [static] |
Definition at line 52 of file gts/heap.c.
References _GtsHeap::elts, _GtsHeap::func, and PARENT.
Referenced by gts_heap_insert().