My Project
Main Page
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
rbtree_rotate.c
Go to the documentation of this file.
1
#include <
3ds/util/rbtree.h
>
2
#include "
rbtree_internal.h
"
3
4
void
5
rbtree_rotate
(
rbtree_t
*tree,
6
rbtree_node_t
*
node
,
7
int
left)
8
{
9
rbtree_node_t
*tmp = node->
child
[left];
10
rbtree_node_t
*parent = get_parent(node);
11
12
node->
child
[left] = tmp->
child
[!left];
13
if
(tmp->
child
[!left] != NULL)
14
set_parent(tmp->
child
[!left], node);
15
16
tmp->
child
[!left] =
node
;
17
set_parent(tmp, parent);
18
if
(parent != NULL)
19
{
20
if
(node == parent->
child
[!left])
21
parent->
child
[!left] = tmp;
22
else
23
parent->
child
[left] = tmp;
24
}
25
else
26
tree->
root
= tmp;
27
set_parent(node, tmp);
28
}
node
rbtree_node_t * node
Definition:
rbtree.h:45
rbtree_internal.h
rbtree.h
rbtree_node
Definition:
rbtree.h:15
rbtree
Definition:
rbtree.h:21
rbtree_rotate
void rbtree_rotate(rbtree_t *tree, rbtree_node_t *node, int left)
Definition:
rbtree_rotate.c:5
rbtree::root
rbtree_node_t * root
Definition:
rbtree.h:23
rbtree_node::child
rbtree_node_t * child[2]
Definition:
rbtree.h:18
source
util
rbtree_rotate.c
Generated on Mon Nov 24 2014 23:37:59 for My Project by
1.8.8