00001
00002
00003
00004
00005
00006
00007
00008
00052 #ifdef _MSC_VER
00053 #pragma once
00054 #endif
00055
00056 #ifndef OREAS_HEAP_BASE_H
00057 #define OREAS_HEAP_BASE_H
00058
00059
00060
00061 #include <ogdf/basic/GraphCopy.h>
00062
00063
00064
00065
00066 namespace ogdf {
00067
00068
00091 class HeapEntry;
00092
00093 class HeapEntryPointer;
00094
00095 template <class Priority, class HeapObject>
00096 class HeapBase {
00097
00098 public:
00100 HeapBase() {};
00101
00102 virtual ~HeapBase() {}
00103
00104
00106 virtual void makeHeap() = 0;
00107
00108 HeapObject minRet() {}
00109
00110
00111
00112
00114 virtual void insert(HeapObject, Priority ) {};
00115
00116
00117
00118
00119
00121
00122 virtual void decreaseKey() {};
00123
00124
00125
00126 int size() const {return m_size;}
00127
00128 bool empty() const {return m_size==0;}
00129
00130
00131 protected:
00132 int m_size;
00133
00134 };
00135
00136
00137
00138 }
00139
00140 #endif
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152