00001
00014 #ifndef DKUTIL_C_2TREE_H
00015 #define DKUTIL_C_2TREE_H
00016
00017 #include "dkcOSIndependent.h"
00018
00019
00020
00021
00022
00023
00024 #if 0
00025
00032 typedef struct dkc_2TreeNode{
00034 struct dkc_2Tree *mRight,*mLeft;
00035 BYTE *mBuff;
00036 size_t mSize;
00037 int mKey;
00038 }DKC_2TREE_NODE;
00039
00040 typedef struct dkc_2TreeRoot{
00041 DKC_2TREE *mTree;
00042 DKC_2TREE *mSentinel;
00043 }DKC_2TREE_ROOT;
00044
00045
00047 DKC_EXTERN BOOL WINAPI dkc2TreeIsSentinel(const DKC_2TREE *ptr);
00048
00055
00056 DKC_EXTERN DKC_2TREEROOT * WINAPI dkcAlloc2TreeRoot(int Key,const void *data,size_t size);
00064
00065 DKC_EXTERN int WINAPI dkcFree2TreeRoot(DKC_2TREEROOT **ptr);
00066
00067
00070
00071 DKC_EXTERN int WINAPI dkc2TreeInsert(DKC_2TREEROOT *ptr,int Key,const void *data,size_t size);
00072
00080 DKC_EXTERN int WINAPI dkc2TreeChain(DKC_2TREEROOT *dest,DKC_2TREEROOT *src);
00081
00085 DKC_EXTERN int WINAPI dkc2TreeErase(DKC_2TREEROOT *ptr,int Key);
00090 DKC_EXTERN DKC_2TREE * WINAPI dkc2TreeSearch(DKC_2TREEROOT *ptr,int Key);
00093
00094 DKC_EXTERN int WINAPI dkc2TreeGetBuffer(DKC_2TREE *ptr,void *data,size_t size);
00099 DKC_EXTERN int WINAPI dkc2TreeSetBuffer(DKC_2TREE *ptr,void *data,size_t size);
00100
00101
00102
00103
00104
00105
00106 #endif //end of if 0
00107
00108 #ifndef DKUTIL_C_2TREE_C
00109 # include "dkc2Tree.c"
00110 #endif
00111
00112 #endif //end of include once