-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSCHeap.h
69 lines (56 loc) · 3.05 KB
/
SCHeap.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*------------------------------------------------------------------------------+
| |
| SCL - Simulation Class Library |
| |
| (c) 1994-98 Marc Diefenbruch, Wolfgang Textor |
| University of Essen, Germany |
| |
+---------------+-------------------+---------------+-------------------+-------+
| Module | File | Created | Project | |
+---------------+-------------------+---------------+-------------------+-------+
| SCHeap | SCHeap.h | 24. Feb 1996 | SCL | |
+---------------+-------------------+---------------+-------------------+-------+
| |
| Change Log |
| |
| Nr. Date Description |
| ----- -------- ------------------------------------------------------- |
| 001 |
| 000 --.--.-- Neu angelegt |
| |
+------------------------------------------------------------------------------*/
/* Lineal
000000000011111111112222222222333333333344444444445555555555666666666677777777778
012345678901234567890123456789012345678901234567890123456789012345678901234567890
*/
#ifndef __SCHEAP__
#define __SCHEAP__
#include "SCBasicTypes.h"
#include "SCObject.h"
template<class T> class SCHeap: public SCObject
{
public:
SCHeap (SCNatural pNumOfElems = kSCHeapSize,
SCObject *pParent = NULL);
virtual ~SCHeap (void);
T * GetMinimum (void) const;
T * RetrieveMinimum (void);
SCNatural Insert (T *toInsert);
SCNatural NumOfElems(void) const { return numOfElems; }
SCBoolean IsEmpty(void) const { return (numOfElems == 0); }
T * operator[] (SCNatural index) const { assert(index <= numOfElems - 1); return heap[index]; }
friend SCStream & operator<< (SCStream &pStream,
const SCHeap<T> &pData);
virtual SCStream & Display (SCStream &pStream) const;
protected:
void Swap (SCNatural i, SCNatural j);
void BubbleUp (SCNatural i);
void BubbleDown (SCNatural i);
private:
T ** heap;
SCNatural numOfElems;
};
#ifndef __GNUC__
#include "SCHeap.tmpl.h" // necessary for CC compiler
#endif
#endif // __SCHEAP__