00001
00002
00003
00004
00005
00006
00007
00008
00017 #ifndef __ndk_binaryTree_h__
00018 #define __ndk_binaryTree_h__
00019
00020 #include <errorCodes.h>
00021 #include <types.h>
00022
00023 typedef struct _BinaryTree *BinaryTree;
00024 typedef struct _BinaryTreeIterator *BinaryTreeIterator;
00025
00035 typedef int32 (*BinaryTreeComparator) (Boolean keyComparison, void *data1, void *data2);
00036
00040 ErrorCode binaryTreeCreate(BinaryTree *bTree, BinaryTreeComparator comparator);
00041
00045 ErrorCode binaryTreeDestroy(BinaryTree *bTree);
00046
00050 ErrorCode binaryTreeAdd(BinaryTree bTree, void *data);
00051
00055 ErrorCode binaryTreeRemove(BinaryTree bTree, void *data);
00056
00060 ErrorCode binaryTreeRemoveByKey(BinaryTree bTree, void *key);
00061
00065 ErrorCode binaryTreeFind(BinaryTree bTree, void *key, void **data);
00066
00070 ErrorCode binaryTreeGetLength(BinaryTree bTree, uint32 *length);
00071
00075 ErrorCode binaryTreeGetFirst(BinaryTree bTree, void **data);
00076
00080 ErrorCode binaryTreeGetLast(BinaryTree bTree, void **data);
00081
00085 ErrorCode binaryTreeIteratorCreate(BinaryTreeIterator *bti, BinaryTree bTree);
00086
00092 ErrorCode binaryTreeIteratorReset(BinaryTreeIterator bti);
00093
00097 ErrorCode binaryTreeIteratorGetNext(BinaryTreeIterator bti, void **data);
00098
00102 ErrorCode binaryTreeIteratorGetPrevious(BinaryTreeIterator bti, void **data);
00103
00107 ErrorCode binaryTreeIteratorDestroy(BinaryTreeIterator *bti);
00108
00109 #endif
00110