| OpenTTD
    | 
Binary Heap as C++ template. More...
#include <binaryheap.hpp>
| Public Member Functions | |
| CBinaryHeapT (uint max_items) | |
| Create a binary heap. | |
| uint | Length () const | 
| Get the number of items stored in the priority queue. | |
| bool | IsEmpty () const | 
| Test if the priority queue is empty. | |
| bool | IsFull () const | 
| Test if the priority queue is full. | |
| T * | Begin () | 
| Get the smallest item in the binary tree. | |
| T * | End () | 
| Get the LAST item in the binary tree. | |
| void | Include (T *new_item) | 
| Insert new item into the priority queue, maintaining heap order. | |
| T * | Shift () | 
| Remove and return the smallest (and also first) item from the priority queue. | |
| void | Remove (uint index) | 
| Remove item at given index from the priority queue. | |
| uint | FindIndex (const T &item) const | 
| Search for an item in the priority queue. | |
| void | Clear () | 
| Make the priority queue empty. | |
| Protected Member Functions | |
| uint | HeapifyDown (uint gap, T *item) | 
| Get position for fixing a gap (downwards). | |
| uint | HeapifyUp (uint gap, T *item) | 
| Get position for fixing a gap (upwards). | |
| Private Attributes | |
| uint | items | 
| Number of items in the heap. | |
| uint | capacity | 
| Maximum number of items the heap can hold. | |
| T ** | data | 
| The pointer to the heap item pointers. | |
Binary Heap as C++ template.
A carrier which keeps its items automatically holds the smallest item at the first position. The order of items is maintained by using a binary tree. The implementation is used for priority queue's.
| T | Type of the items stored in the binary heap | 
Definition at line 53 of file binaryheap.hpp.
| 
 | inlineexplicit | 
Create a binary heap.
| max_items | The limit of the heap | 
Definition at line 64 of file binaryheap.hpp.
| 
 | inline | 
Get the smallest item in the binary tree.
Definition at line 190 of file binaryheap.hpp.
Referenced by CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::GetBestOpenNode(), and CBinaryHeapT< Titem_ >::Shift().
| 
 | inline | 
Make the priority queue empty.
All remaining items will remain untouched.
Definition at line 299 of file binaryheap.hpp.
| 
 | inline | 
Get the LAST item in the binary tree.
Definition at line 203 of file binaryheap.hpp.
Referenced by CBinaryHeapT< Titem_ >::Remove(), and CBinaryHeapT< Titem_ >::Shift().
| 
 | inline | 
Search for an item in the priority queue.
Matching is done by comparing address of the item.
| item | The reference to the item | 
Definition at line 284 of file binaryheap.hpp.
Referenced by CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::PopOpenNode().
| 
 | inlineprotected | 
Get position for fixing a gap (downwards).
The gap is moved downwards in the binary tree until it is in order again.
| gap | The position of the gap | 
| item | The proposed item for filling the gap | 
Definition at line 88 of file binaryheap.hpp.
Referenced by CBinaryHeapT< Titem_ >::Remove(), and CBinaryHeapT< Titem_ >::Shift().
| 
 | inlineprotected | 
Get position for fixing a gap (upwards).
The gap is moved upwards in the binary tree until the is in order again.
| gap | The position of the gap | 
| item | The proposed item for filling the gap | 
Definition at line 124 of file binaryheap.hpp.
Referenced by CBinaryHeapT< Titem_ >::Include(), and CBinaryHeapT< Titem_ >::Remove().
| 
 | inline | 
Insert new item into the priority queue, maintaining heap order.
| new_item | The pointer to the new item | 
Definition at line 213 of file binaryheap.hpp.
Referenced by CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::InsertOpenNode().
| 
 | inline | 
Test if the priority queue is empty.
Definition at line 170 of file binaryheap.hpp.
Referenced by CBinaryHeapT< Titem_ >::Begin(), CBinaryHeapT< Titem_ >::FindIndex(), CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::GetBestOpenNode(), CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::PopBestOpenNode(), CBinaryHeapT< Titem_ >::Remove(), and CBinaryHeapT< Titem_ >::Shift().
| 
 | inline | 
Test if the priority queue is full.
Definition at line 180 of file binaryheap.hpp.
Referenced by CBinaryHeapT< Titem_ >::Include().
| 
 | inline | 
Get the number of items stored in the priority queue.
Definition at line 160 of file binaryheap.hpp.
| 
 | inline | 
Remove item at given index from the priority queue.
| index | The position of the item in the heap | 
Definition at line 256 of file binaryheap.hpp.
Referenced by CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::PopOpenNode().
| 
 | inline | 
Remove and return the smallest (and also first) item from the priority queue.
Definition at line 234 of file binaryheap.hpp.
Referenced by CNodeList_HashTableT< Titem_, Thash_bits_open_, Thash_bits_closed_ >::PopBestOpenNode().
 1.8.1.2
 1.8.1.2