Snapdragon® Telematics Application Framework (TelAF) Interface Specification
le_redBlackTree.h
Go to the documentation of this file.
1 
159 #ifndef LEGATO_RED_BLACK_TREE_INCLUDE_GUARD
160 #define LEGATO_RED_BLACK_TREE_INCLUDE_GUARD
161 
165 typedef enum
166 {
170 }
172 
176 typedef struct le_rbtree_Node
177 {
178  void *key;
179  struct le_rbtree_Node *parent;
180  struct le_rbtree_Node *left;
181  struct le_rbtree_Node *right;
183 }
185 
186 //--------------------------------------------------------------------------------------------------
193 //--------------------------------------------------------------------------------------------------
194 typedef int (*le_rbtree_CompareFunc_t)
195 (
196  const void *key1Ptr,
197  const void *key2Ptr
198 );
199 
200 
201 //--------------------------------------------------------------------------------------------------
207 //--------------------------------------------------------------------------------------------------
208 typedef struct le_rbtree_Tree
209 {
211  size_t size;
213 }
215 
216 
217 //--------------------------------------------------------------------------------------------------
221 //--------------------------------------------------------------------------------------------------
223 (
224  le_rbtree_Tree_t *treePtr,
226 );
227 
228 //--------------------------------------------------------------------------------------------------
232 //--------------------------------------------------------------------------------------------------
234 (
235  le_rbtree_Node_t *linkPtr,
236  void *keyPtr
237 );
238 
239 //--------------------------------------------------------------------------------------------------
247 //--------------------------------------------------------------------------------------------------
249 (
250  le_rbtree_Tree_t *treePtr,
251  le_rbtree_Node_t *newLinkPtr
252 );
253 
254 //--------------------------------------------------------------------------------------------------
261 //--------------------------------------------------------------------------------------------------
263 (
264  le_rbtree_Tree_t *treePtr,
265  void *keyPtr
266 );
267 
268 //--------------------------------------------------------------------------------------------------
275 //--------------------------------------------------------------------------------------------------
277 (
278  le_rbtree_Tree_t *treePtr,
279  le_rbtree_Node_t *linkPtr
280 );
281 
282 //--------------------------------------------------------------------------------------------------
289 //--------------------------------------------------------------------------------------------------
291 (
292  le_rbtree_Tree_t *treePtr,
293  void *keyPtr
294 );
295 
296 //--------------------------------------------------------------------------------------------------
303 //--------------------------------------------------------------------------------------------------
305 (
306  const le_rbtree_Tree_t *treePtr
307 );
308 
309 //--------------------------------------------------------------------------------------------------
316 //--------------------------------------------------------------------------------------------------
318 (
319  const le_rbtree_Tree_t *treePtr
320 );
321 
322 //--------------------------------------------------------------------------------------------------
331 //--------------------------------------------------------------------------------------------------
333 (
334  const le_rbtree_Tree_t *treePtr,
335  le_rbtree_Node_t *currentLinkPtr
336 );
337 
338 //--------------------------------------------------------------------------------------------------
347 //--------------------------------------------------------------------------------------------------
349 (
350  const le_rbtree_Tree_t *treePtr,
351  le_rbtree_Node_t *currentLinkPtr
352 );
353 
354 //--------------------------------------------------------------------------------------------------
360 //--------------------------------------------------------------------------------------------------
362 (
363  const le_rbtree_Tree_t *treePtr
364 );
365 
366 //--------------------------------------------------------------------------------------------------
372 //--------------------------------------------------------------------------------------------------
373 size_t le_rbtree_Size
374 (
375  const le_rbtree_Tree_t *treePtr
376 );
377 
378 #endif // LEGATO_RED_BLACK_TREE_INCLUDE_GUARD
le_rbtree_Node_t * le_rbtree_GetPrev(const le_rbtree_Tree_t *treePtr, le_rbtree_Node_t *currentLinkPtr)
le_rbtree_Node_t * le_rbtree_GetFirst(const le_rbtree_Tree_t *treePtr)
le_rbtree_Node_t * le_rbtree_RemoveByKey(le_rbtree_Tree_t *treePtr, void *keyPtr)
le_rbtree_CompareFunc_t compFn
Key comparison function.
Definition: le_redBlackTree.h:212
struct le_rbtree_Node * parent
Parent link pointer.
Definition: le_redBlackTree.h:179
le_rbtree_Node_t * le_rbtree_Find(le_rbtree_Tree_t *treePtr, void *keyPtr)
size_t le_rbtree_Size(const le_rbtree_Tree_t *treePtr)
Definition: le_redBlackTree.h:176
le_rbtree_Node_t * le_rbtree_GetNext(const le_rbtree_Tree_t *treePtr, le_rbtree_Node_t *currentLinkPtr)
le_rbtree_Node_t * le_rbtree_Remove(le_rbtree_Tree_t *treePtr, le_rbtree_Node_t *linkPtr)
size_t size
Number of elements in the tree.
Definition: le_redBlackTree.h:211
le_rbtree_Node_t * le_rbtree_GetLast(const le_rbtree_Tree_t *treePtr)
struct le_rbtree_Node * left
Left node link pointer.
Definition: le_redBlackTree.h:180
void * key
Key pointer.
Definition: le_redBlackTree.h:178
le_rbtree_Color_t
Definition: le_redBlackTree.h:165
le_rbtree_Node_t * le_rbtree_Insert(le_rbtree_Tree_t *treePtr, le_rbtree_Node_t *newLinkPtr)
bool le_rbtree_IsEmpty(const le_rbtree_Tree_t *treePtr)
le_rbtree_Color_t color
Color.
Definition: le_redBlackTree.h:182
Definition: le_redBlackTree.h:208
void le_rbtree_InitTree(le_rbtree_Tree_t *treePtr, le_rbtree_CompareFunc_t compFn)
void le_rbtree_InitNode(le_rbtree_Node_t *linkPtr, void *keyPtr)
Definition: le_redBlackTree.h:169
le_rbtree_Node_t * root
Root tree node.
Definition: le_redBlackTree.h:210
Definition: le_redBlackTree.h:167
struct le_rbtree_Node * right
Right node link pointer.
Definition: le_redBlackTree.h:181
int(* le_rbtree_CompareFunc_t)(const void *key1Ptr, const void *key2Ptr)
Definition: le_redBlackTree.h:195
Definition: le_redBlackTree.h:168