20#ifndef GCC_TYPED_SPLAY_TREE_H
21#define GCC_TYPED_SPLAY_TREE_H
24template <
typename KEY_TYPE,
typename VALUE_TYPE>
109template <
typename KEY_TYPE,
typename VALUE_TYPE>
123template <
typename KEY_TYPE,
typename VALUE_TYPE>
133template <
typename KEY_TYPE,
typename VALUE_TYPE>
144template <
typename KEY_TYPE,
typename VALUE_TYPE>
155template <
typename KEY_TYPE,
typename VALUE_TYPE>
167template <
typename KEY_TYPE,
typename VALUE_TYPE>
177template <
typename KEY_TYPE,
typename VALUE_TYPE>
186template <
typename KEY_TYPE,
typename VALUE_TYPE>
195template <
typename KEY_TYPE,
typename VALUE_TYPE>
207template <
typename KEY_TYPE,
typename VALUE_TYPE>
217template <
typename KEY_TYPE,
typename VALUE_TYPE>
227template <
typename KEY_TYPE,
typename VALUE_TYPE>
235template <
typename KEY_TYPE,
typename VALUE_TYPE>
245template <
typename KEY_TYPE,
typename VALUE_TYPE>
260 node->
back = pending;
283 pending = active->
left;
290 pending = active->
right;
303template <
typename KEY_TYPE,
typename VALUE_TYPE>
319template <
typename KEY_TYPE,
typename VALUE_TYPE>
334template <
typename KEY_TYPE,
typename VALUE_TYPE>
362 cmp2 = (*comp) (key, c->
key);
364 || (cmp2 < 0 && !c->left)
365 || (cmp2 > 0 && !c->
right))
375 if (
cmp1 < 0 && cmp2 < 0)
380 else if (
cmp1 > 0 && cmp2 > 0)
390 else if (
cmp1 > 0 && cmp2 < 0)
403template <
typename KEY_TYPE,
typename VALUE_TYPE>
448template <
typename KEY_TYPE,
typename VALUE_TYPE>
500template <
typename KEY_TYPE,
typename VALUE_TYPE>
540template <
typename KEY_TYPE,
typename VALUE_TYPE>
554template <
typename KEY_TYPE,
typename VALUE_TYPE>
571template <
typename KEY_TYPE,
typename VALUE_TYPE>
589template <
typename KEY_TYPE,
typename VALUE_TYPE>
622template <
typename KEY_TYPE,
typename VALUE_TYPE>
Definition genoutput.cc:150
Definition typed-splay-tree.h:26
delete_value_fn delete_value
Definition typed-splay-tree.h:104
void(* delete_value_fn)(value_type)
Definition typed-splay-tree.h:33
key_type splay_tree_key
Definition typed-splay-tree.h:55
value_type predecessor(key_type k)
Definition typed-splay-tree.h:146
value_type min()
Definition typed-splay-tree.h:197
value_type splay_tree_value
Definition typed-splay-tree.h:56
~typed_splay_tree()
Definition typed-splay-tree.h:125
value_type max()
Definition typed-splay-tree.h:188
void remove(key_type k)
Definition typed-splay-tree.h:179
typed_splay_tree(compare_fn, delete_key_fn, delete_value_fn)
Definition typed-splay-tree.h:111
value_type successor(key_type k)
Definition typed-splay-tree.h:157
typed_splay_tree(const typed_splay_tree &)
splay_tree_node_s * splay_tree_node
Definition typed-splay-tree.h:72
static void rotate_left(splay_tree_node *, splay_tree_node, splay_tree_node)
Definition typed-splay-tree.h:305
void splay_tree_splay(splay_tree_key)
Definition typed-splay-tree.h:336
void KDEL(splay_tree_key)
Definition typed-splay-tree.h:229
splay_tree_node splay_tree_max()
Definition typed-splay-tree.h:556
splay_tree_node splay_tree_min()
Definition typed-splay-tree.h:573
value_type lookup(key_type k)
Definition typed-splay-tree.h:135
void splay_tree_remove(splay_tree_key key)
Definition typed-splay-tree.h:502
splay_tree_node splay_tree_successor(splay_tree_key)
Definition typed-splay-tree.h:625
static void rotate_right(splay_tree_node *, splay_tree_node, splay_tree_node)
Definition typed-splay-tree.h:321
void(* delete_key_fn)(key_type)
Definition typed-splay-tree.h:32
void VDEL(splay_tree_value)
Definition typed-splay-tree.h:237
void insert(key_type k, value_type v)
Definition typed-splay-tree.h:169
compare_fn comp
Definition typed-splay-tree.h:98
splay_tree_node splay_tree_lookup(splay_tree_key key)
Definition typed-splay-tree.h:542
int foreach(foreach_fn, void *)
Definition typed-splay-tree.h:209
VALUE_TYPE value_type
Definition typed-splay-tree.h:29
splay_tree_node splay_tree_predecessor(splay_tree_key)
Definition typed-splay-tree.h:592
splay_tree_node splay_tree_insert(splay_tree_key, splay_tree_value)
Definition typed-splay-tree.h:450
typed_splay_tree & operator=(const typed_splay_tree &)
delete_key_fn delete_key
Definition typed-splay-tree.h:101
splay_tree_node root
Definition typed-splay-tree.h:95
int(* compare_fn)(key_type, key_type)
Definition typed-splay-tree.h:31
void splay_tree_delete_helper(splay_tree_node)
Definition typed-splay-tree.h:248
static value_type node_to_value(splay_tree_node node)
Definition typed-splay-tree.h:219
KEY_TYPE key_type
Definition typed-splay-tree.h:28
int(* foreach_fn)(key_type, value_type, void *)
Definition typed-splay-tree.h:34
static int splay_tree_foreach_helper(splay_tree_node, foreach_fn, void *)
Definition typed-splay-tree.h:405
static noinline intptr_t cmp1(char *e0, char *e1, sort_ctx *c)
Definition sort.cc:148
Definition compare-elim.cc:91
Definition typed-splay-tree.h:59
splay_tree_value value
Definition typed-splay-tree.h:64
splay_tree_node_s * left
Definition typed-splay-tree.h:67
splay_tree_key key
Definition typed-splay-tree.h:61
splay_tree_node_s * right
Definition typed-splay-tree.h:67
splay_tree_node_s * back
Definition typed-splay-tree.h:70
#define NULL
Definition system.h:50