00001
00014 #ifndef DKUTIL_C_2TREE_H
00015 #define DKUTIL_C_2TREE_H
00016
00017 #include "dkcOSIndependent.h"
00018
00019
00020 #if 0
00021
00028 typedef struct dkc_2Tree{
00030 struct dkc_2Tree *mRight,*mLeft;
00031 BYTE *mBuff;
00032 size_t mSize;
00033 int mKey;
00034 }DKC_2TREE;
00035
00036 typedef struct dkc_2TreeRoot{
00037 DKC_2TREE *mTree;
00038 DKC_2TREE *mSentinel;
00039 }DKC_2TREEROOT;
00040
00041
00043 DKC_EXTERN BOOL WINAPI dkc2TreeIsSentinel(const DKC_2TREE *ptr);
00044
00051
00052 DKC_EXTERN DKC_2TREEROOT * WINAPI dkcAlloc2TreeRoot(int Key,const void *data,size_t size);
00060
00061 DKC_EXTERN int WINAPI dkcFree2TreeRoot(DKC_2TREEROOT **ptr);
00062
00063
00066
00067 DKC_EXTERN int WINAPI dkc2TreeInsert(DKC_2TREEROOT *ptr,int Key,const void *data,size_t size);
00068
00076 DKC_EXTERN int WINAPI dkc2TreeChain(DKC_2TREEROOT *dest,DKC_2TREEROOT *src);
00077
00081 DKC_EXTERN int WINAPI dkc2TreeErase(DKC_2TREEROOT *ptr,int Key);
00086 DKC_EXTERN DKC_2TREE * WINAPI dkc2TreeSearch(DKC_2TREEROOT *ptr,int Key);
00089
00090 DKC_EXTERN int WINAPI dkc2TreeGetBuffer(DKC_2TREE *ptr,void *data,size_t size);
00095 DKC_EXTERN int WINAPI dkc2TreeSetBuffer(DKC_2TREE *ptr,void *data,size_t size);
00096
00097
00098
00099
00100
00101
00102 #endif //end of if 0
00103
00104 #ifndef DKUTIL_C_2TREE_C
00105 # include "dkc2Tree.c"
00106 #endif
00107
00108 #endif //end of include once