Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

binaryTree.h

Go to the documentation of this file.
00001 /* ndk - [ binaryTree.h ]
00002  *
00003  * Routines for maintaining a balanced tree of items
00004  *
00005  * (c)2004 dcipher / neuraldk
00006  *           www.neuraldk.org
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 

Generated on Wed Mar 22 20:36:33 2006 for ndk by  doxygen 1.4.4