Changeset d1e9321 in mainline for kernel/generic/src/adt/avl.c


Ignore:
Timestamp:
2007-07-29T13:46:34Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5dcee525
Parents:
0d65d76
Message:

Add explicit type for an AVL tree key.
Add function to walk an AVL tree using a supplied walker.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/adt/avl.c

    r0d65d76 rd1e9321  
    5353#include <debug.h>
    5454
    55 
    5655#define LEFT    0
    5756#define RIGHT   1
    5857
    59 
    6058/** Search for the first occurence of the given key in an AVL tree.
    6159 *
     
    6563 * @return Pointer to a node or NULL if there is no such key.
    6664 */
    67 avltree_node_t *avltree_search(avltree_t *t, uint64_t key)
     65avltree_node_t *avltree_search(avltree_t *t, avltree_key_t key)
    6866{
    6967        avltree_node_t *p;
     
    121119        avltree_node_t *top;
    122120        avltree_node_t **dpc;
    123         uint64_t key;
     121        avltree_key_t key;
    124122
    125123        ASSERT(t);
     
    708706}
    709707
     708static void _avltree_walk(avltree_node_t *node, avltree_walker_t walker)
     709{
     710        if (node->lft)
     711                _avltree_walk(node->lft, walker);
     712        walker(node);
     713        if (node->rgt)
     714                _avltree_walk(node->rgt, walker);
     715}
     716
     717/** Walk the AVL tree and apply the walker function on each visited node.
     718 *
     719 * @param t             AVL tree to be walked.
     720 * @param walker        Walker function that will be called on each visited
     721 *                      node.
     722 */
     723void avltree_walk(avltree_t *t, avltree_walker_t walker)
     724{
     725        _avltree_walk(t->root, walker);
     726}
     727
    710728/** @}
    711729 */
Note: See TracChangeset for help on using the changeset viewer.