aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp')
-rw-r--r--gcc-4.4.3/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp497
1 files changed, 0 insertions, 497 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp b/gcc-4.4.3/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
deleted file mode 100644
index 7315d951f..000000000
--- a/gcc-4.4.3/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+++ /dev/null
@@ -1,497 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the terms
-// of the GNU General Public License as published by the Free Software
-// Foundation; either version 3, or (at your option) any later
-// version.
-
-// This library is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice
-// and this permission notice appear in supporting documentation. None
-// of the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied
-// warranty.
-
-/**
- * @file bin_search_tree_.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-/*
- * This implementation uses an idea from the SGI STL (using a "header" node
- * which is needed for efficient iteration).
- */
-
-#include <ext/pb_ds/exception.hpp>
-#include <ext/pb_ds/detail/eq_fn/eq_by_less.hpp>
-#include <ext/pb_ds/detail/types_traits.hpp>
-#include <ext/pb_ds/detail/debug_map_base.hpp>
-#include <ext/pb_ds/tree_policy.hpp>
-#include <ext/pb_ds/detail/cond_dealtor.hpp>
-#include <ext/pb_ds/detail/type_utils.hpp>
-#include <ext/pb_ds/detail/tree_trace_base.hpp>
-#include <utility>
-#include <functional>
-#include <debug/debug.h>
-
-namespace __gnu_pbds
-{
- namespace detail
- {
-
-#define PB_DS_CLASS_T_DEC \
- template<typename Key, typename Mapped, class Cmp_Fn, \
- class Node_And_It_Traits, class Allocator>
-
-#ifdef PB_DS_DATA_TRUE_INDICATOR
-#define PB_DS_CLASS_NAME \
- bin_search_tree_data_
-#endif
-
-#ifdef PB_DS_DATA_FALSE_INDICATOR
-#define PB_DS_CLASS_NAME \
- bin_search_tree_no_data_
-#endif
-
-#define PB_DS_CLASS_C_DEC \
- PB_DS_CLASS_NAME< \
- Key, \
- Mapped, \
- Cmp_Fn, \
- Node_And_It_Traits, \
- Allocator>
-
-#define PB_DS_TYPES_TRAITS_C_DEC \
- types_traits< \
- Key, \
- Mapped, \
- Allocator, \
- false>
-
-#ifdef _GLIBCXX_DEBUG
-#define PB_DS_DEBUG_MAP_BASE_C_DEC \
- debug_map_base<Key, eq_by_less<Key, Cmp_Fn>, \
- typename Allocator::template rebind<Key>::other::const_reference>
-#endif
-
-#ifdef PB_DS_DATA_TRUE_INDICATOR
-#define PB_DS_V2F(X) (X).first
-#define PB_DS_V2S(X) (X).second
-#define PB_DS_EP2VP(X)& ((X)->m_value)
-#endif
-
-#ifdef PB_DS_DATA_FALSE_INDICATOR
-#define PB_DS_V2F(X) (X)
-#define PB_DS_V2S(X) Mapped_Data()
-#define PB_DS_EP2VP(X)& ((X)->m_value.first)
-#endif
-
-#ifdef PB_DS_TREE_TRACE
-#define PB_DS_TREE_TRACE_BASE_C_DEC \
- tree_trace_base< \
- typename Node_And_It_Traits::const_node_iterator, \
- typename Node_And_It_Traits::node_iterator, \
- Cmp_Fn, \
- true, \
- Allocator>
-#endif
-
- /**
- * class description = "8i|\|4ree $34rc|-| 7r33 74813.">
- **/
- template<typename Key,
- typename Mapped,
- class Cmp_Fn,
- class Node_And_It_Traits,
- class Allocator>
- class PB_DS_CLASS_NAME :
-#ifdef _GLIBCXX_DEBUG
- public PB_DS_DEBUG_MAP_BASE_C_DEC,
-#endif
-#ifdef PB_DS_TREE_TRACE
- public PB_DS_TREE_TRACE_BASE_C_DEC,
-#endif
- public Cmp_Fn,
- public PB_DS_TYPES_TRAITS_C_DEC,
- public Node_And_It_Traits::node_update
- {
-
- protected:
- typedef
- typename Allocator::template rebind<
- typename Node_And_It_Traits::node>::other
- node_allocator;
-
- typedef typename node_allocator::value_type node;
-
- typedef typename node_allocator::pointer node_pointer;
-
- typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
-
- typedef
- typename Node_And_It_Traits::null_node_update_pointer
- null_node_update_pointer;
-
- private:
- typedef cond_dealtor< node, Allocator> cond_dealtor_t;
-
-#ifdef _GLIBCXX_DEBUG
- typedef PB_DS_DEBUG_MAP_BASE_C_DEC debug_base;
-#endif
-
- public:
-
- typedef typename Allocator::size_type size_type;
-
- typedef typename Allocator::difference_type difference_type;
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
- const_key_pointer;
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
- const_key_reference;
-
-#ifdef PB_DS_DATA_TRUE_INDICATOR
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
- mapped_pointer;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
- const_mapped_pointer;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
- mapped_reference;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
- const_mapped_reference;
-#endif
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
-
- typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
-
- typedef
- typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
- const_reference;
-
- typedef
- typename Node_And_It_Traits::const_point_iterator
- const_point_iterator;
-
- typedef const_point_iterator const_iterator;
-
- typedef typename Node_And_It_Traits::point_iterator point_iterator;
-
- typedef point_iterator iterator;
-
- typedef
- typename Node_And_It_Traits::const_reverse_iterator
- const_reverse_iterator;
-
- typedef typename Node_And_It_Traits::reverse_iterator reverse_iterator;
-
- typedef
- typename Node_And_It_Traits::const_node_iterator
- const_node_iterator;
-
- typedef typename Node_And_It_Traits::node_iterator node_iterator;
-
- typedef Cmp_Fn cmp_fn;
-
- typedef Allocator allocator_type;
-
- typedef typename Node_And_It_Traits::node_update node_update;
-
- public:
-
- PB_DS_CLASS_NAME();
-
- PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
-
- PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_update);
-
- PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
-
- void
- swap(PB_DS_CLASS_C_DEC& other);
-
- ~PB_DS_CLASS_NAME();
-
- inline bool
- empty() const;
-
- inline size_type
- size() const;
-
- inline size_type
- max_size() const;
-
- Cmp_Fn&
- get_cmp_fn();
-
- const Cmp_Fn&
- get_cmp_fn() const;
-
- inline point_iterator
- lower_bound(const_key_reference r_key);
-
- inline const_point_iterator
- lower_bound(const_key_reference r_key) const;
-
- inline point_iterator
- upper_bound(const_key_reference r_key);
-
- inline const_point_iterator
- upper_bound(const_key_reference r_key) const;
-
- inline point_iterator
- find(const_key_reference r_key);
-
- inline const_point_iterator
- find(const_key_reference r_key) const;
-
- inline iterator
- begin();
-
- inline const_iterator
- begin() const;
-
- inline iterator
- end();
-
- inline const_iterator
- end() const;
-
- inline reverse_iterator
- rbegin();
-
- inline const_reverse_iterator
- rbegin() const;
-
- inline reverse_iterator
- rend();
-
- inline const_reverse_iterator
- rend() const;
-
- inline const_node_iterator
- node_begin() const;
-
- inline node_iterator
- node_begin();
-
- inline const_node_iterator
- node_end() const;
-
- inline node_iterator
- node_end();
-
- void
- clear();
-
- protected:
-
- void
- value_swap(PB_DS_CLASS_C_DEC& other);
-
- void
- initialize_min_max();
-
- inline iterator
- insert_imp_empty(const_reference r_value);
-
- inline iterator
- insert_leaf_new(const_reference r_value, node_pointer p_nd, bool left_nd);
-
- inline node_pointer
- get_new_node_for_leaf_insert(const_reference r_val, false_type);
-
- inline node_pointer
- get_new_node_for_leaf_insert(const_reference r_val, true_type);
-
- inline void
- actual_erase_node(node_pointer p_nd);
-
- inline std::pair<node_pointer, bool>
- erase(node_pointer p_nd);
-
- inline void
- update_min_max_for_erased_node(node_pointer p_nd);
-
- static void
- clear_imp(node_pointer p_nd);
-
- inline std::pair<
- point_iterator,
- bool>
- insert_leaf(const_reference r_value);
-
- inline void
- rotate_left(node_pointer p_x);
-
- inline void
- rotate_right(node_pointer p_y);
-
- inline void
- rotate_parent(node_pointer p_nd);
-
- inline void
- apply_update(node_pointer p_nd, null_node_update_pointer);
-
- template<typename Node_Update_>
- inline void
- apply_update(node_pointer p_nd, Node_Update_* p_update);
-
- inline void
- update_to_top(node_pointer p_nd, null_node_update_pointer);
-
- template<typename Node_Update_>
- inline void
- update_to_top(node_pointer p_nd, Node_Update_* p_update);
-
- bool
- join_prep(PB_DS_CLASS_C_DEC& other);
-
- void
- join_finish(PB_DS_CLASS_C_DEC& other);
-
- bool
- split_prep(const_key_reference r_key, PB_DS_CLASS_C_DEC& other);
-
- void
- split_finish(PB_DS_CLASS_C_DEC& other);
-
- size_type
- recursive_count(node_pointer p_nd) const;
-
-#ifdef _GLIBCXX_DEBUG
- void
- assert_valid() const;
-
- void
- structure_only_assert_valid() const;
-
- void
- assert_node_consistent(const node_pointer p_nd) const;
-#endif
-
- private:
-#ifdef _GLIBCXX_DEBUG
- void
- assert_iterators() const;
-
- void
- assert_consistent_with_debug_base() const;
-
- void
- assert_node_consistent_with_left(const node_pointer p_nd) const;
-
- void
- assert_node_consistent_with_right(const node_pointer p_nd) const;
-
- void
- assert_consistent_with_debug_base(const node_pointer p_nd) const;
-
- void
- assert_min() const;
-
- void
- assert_min_imp(const node_pointer p_nd) const;
-
- void
- assert_max() const;
-
- void
- assert_max_imp(const node_pointer p_nd) const;
-
- void
- assert_size() const;
-
- typedef std::pair< const_pointer, const_pointer> node_consistent_t;
-
- node_consistent_t
- assert_node_consistent_(const node_pointer p_nd) const;
-#endif
-
- void
- initialize();
-
- node_pointer
- recursive_copy_node(const node_pointer p_nd);
-
- protected:
- node_pointer m_p_head;
-
- size_type m_size;
-
- static node_allocator s_node_allocator;
- };
-
-#include <ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp>
-#include <ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp>
-
-#undef PB_DS_CLASS_C_DEC
-
-#undef PB_DS_CLASS_T_DEC
-
-#undef PB_DS_CLASS_NAME
-
-#undef PB_DS_TYPES_TRAITS_C_DEC
-
-#undef PB_DS_DEBUG_MAP_BASE_C_DEC
-
-#ifdef PB_DS_TREE_TRACE
-#undef PB_DS_TREE_TRACE_BASE_C_DEC
-#endif
-
-#undef PB_DS_V2F
-#undef PB_DS_EP2VP
-#undef PB_DS_V2S
-
- } // namespace detail
-} // namespace __gnu_pbds