⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myheap.h

📁 提供了rbtree ttree avltree list hashtable等常用容器的算法,代码经过uclinux + arm44b0平台验证
💻 H
字号:
/*
*
* myheap.h 堆 
*
* author:lin shao chuan (email:lsccsl@tom.com, msn:lsccsl@163.net)
*
*/
#ifndef __MYHEAP_H__
#define __MYHEAP_H__


#include "myvector.h"


typedef struct __myheap_t_ * HMYHEAP;

typedef struct __myheap_key_handle_
{int unused;}* HMYHEAP_KEY;


/*
*
* 构造heap
*
*/
extern HMYHEAP MyHeapConstruct(HMYMEMPOOL hm, int size, myobj_ops * data_ops, ALG_COMPARE compare);

/*
*
* 析构heap
*
*/
extern void MyHeapDestruct(HMYHEAP hp);

/*
*
* 添加一个节点
*
*/
extern HMYHEAP_KEY MyHeapPush(HMYHEAP hp, const void * data, const size_t data_size);

/*
*
* 从堆中弹出一个元素
*
*/
extern int MyHeapPop(HMYHEAP hp);

/*
*
* 取队首元素
*
*/
extern void * MyHeapFront(HMYHEAP hp, size_t * data_size);

/*
*
* 取队首元素的key
*
*/
extern HMYHEAP_KEY MyHeapFrontKey(HMYHEAP hp);

/*
*
* 删除一个元素
*
*/
extern int MyHeapDel(HMYHEAP hp, HMYHEAP_KEY key);

/*
*
* 更新一个元素
*
*/
extern HMYHEAP_KEY MyHeapUpdate(HMYHEAP hp, HMYHEAP_KEY key, const void * data, const size_t data_size);

/*
*
* 查找一个元素
*
*/
extern void * MyHeapSearch(HMYHEAP hp, HMYHEAP_KEY key, size_t * data_size);

/*
*
* 删除所有的元素
*
*/
extern void MyHeapClear(HMYHEAP hp);


#define MyHeapExamin(hp) MyVectorHeapExamin((HMYVECTOR)(hp))

#define MyHeapExaminSortOK(hp) MyVectorHeapExaminSortOK((HMYVECTOR)(hp))

#define MyHeapPrint(hp) MyVectorPrint((HMYVECTOR)(hp))

#define MyHeapGetCount(hp) MyVectorGetCount((HMYVECTOR)(hp))

#define MyHeapSort(hp) MyVectorHeapSort((HMYVECTOR)(hp))


#endif























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -