You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
940 B
39 lines
940 B
7 years ago
|
#ifndef H_HEAP
|
||
|
#define H_HEAP
|
||
|
|
||
|
//--------------Includes-----------------
|
||
|
|
||
|
#include"ostypes.h"
|
||
|
|
||
|
//--------------Functions----------------
|
||
|
|
||
|
static inline uint8_t osHeapChildL(uint8_t iind);
|
||
|
|
||
|
static inline uint8_t osHeapChildR(uint8_t iind);
|
||
|
|
||
|
static inline uint8_t osHeapParent(uint8_t iind);
|
||
|
|
||
|
static inline uint8_t osHeapSize(osHeapNode_t* ioarray);
|
||
|
|
||
|
static inline void osHeapDelete(osHeapNode_t* ioarray, uint8_t ii);
|
||
|
|
||
|
void osHeapInit(osHeapNode_t* ioarray);
|
||
|
|
||
|
static inline void osHeapSwap(osHeapNode_t* ioarray, uint8_t ia, uint8_t ib);
|
||
|
|
||
|
void osHeapHeapify(osHeapNode_t* ioarray, uint8_t iind);
|
||
|
|
||
|
void osHeapBuild(osHeapNode_t* ioarray);
|
||
|
|
||
|
uint8_t osHeapMaximum(osHeapNode_t* ioarray, osHeapNode_t* iomax);
|
||
|
|
||
|
uint8_t osHeapExtractMaximum(osHeapNode_t* ioarray, osHeapNode_t* iomax);
|
||
|
|
||
|
uint8_t osHeapInsert(osHeapNode_t* ioarray, osHeapNode_t x);
|
||
|
|
||
|
void osHeapPrintS(osHeapNode_t* ioarray);
|
||
|
|
||
|
uint8_t osHeapIsEmpty(osHeapNode_t* ioarray);
|
||
|
|
||
|
#endif
|