Subversion Repositories HelenOS

Rev

Rev 2416 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2416 Rev 2421
Line 1... Line 1...
1
/*
1
/*
2
 * Copyright (C) 2006 Vojtech Mencl
2
 * Copyright (C) 2007 Vojtech Mencl
3
 * All rights reserved.
3
 * All rights reserved.
4
 *
4
 *
5
 * Redistribution and use in source and binary forms, with or without
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
6
 * modification, are permitted provided that the following conditions
7
 * are met:
7
 * are met:
Line 92... Line 92...
92
    /** Sum of all keys in the right subtree. */
92
    /** Sum of all keys in the right subtree. */
93
    uint64_t rgt_sum;
93
    uint64_t rgt_sum;
94
};
94
};
95
 
95
 
96
/** Relative key Extended AVL tree structure (ExtAvlrel). */
96
/** Relative key Extended AVL tree structure (ExtAvlrel). */
97
#ifdef AVLTREE_TEST
-
 
98
struct extavlreltree
97
struct extavlreltree
99
{
98
{
100
    /*
99
    /*
101
     * ExtAvlrel root node pointer.
100
     * ExtAvlrel root node pointer.
102
     *
101
     *
Line 112... Line 111...
112
 
111
 
113
/** Create empty Extended AVL tree.
112
/** Create empty Extended AVL tree.
114
 *
113
 *
115
 * @param t Extended AVL tree structure.
114
 * @param t Extended AVL tree structure.
116
 */
115
 */
117
void extavlreltree_create (extavlreltree_t *t)
116
static inline void extavlreltree_create (extavlreltree_t *t)
118
{
117
{
119
    t->root = NULL;
118
    t->root = NULL;
120
 
119
 
121
    t->head.next = &t->head;
120
    t->head.next = &t->head;
122
    t->head.prev = &t->head;
121
    t->head.prev = &t->head;
Line 124... Line 123...
124
 
123
 
125
/** Initialize node.
124
/** Initialize node.
126
 *
125
 *
127
 * @param node Node which is initialized.
126
 * @param node Node which is initialized.
128
 */
127
 */
129
void extavlreltree_node_initialize(extavlreltree_node_t *node)
128
static inline void extavlreltree_node_initialize(extavlreltree_node_t *node)
130
{
129
{
131
    node->lft = NULL;
130
    node->lft = NULL;
132
    node->rgt = NULL;
131
    node->rgt = NULL;
133
    node->lft_height = 0;
132
    node->lft_height = 0;
134
    node->rgt_height = 0;
133
    node->rgt_height = 0;