// /** @file
// An OrderedCollectionLib instance that provides a red-black tree
//
// implementation, and allocates and releases tree nodes with
// MemoryAllocationLib.
//
// This library instance is useful when a fast associative container is needed.
// Worst case time complexity is O(log n) for Find(), Next(), Prev(), Min(),
// Max(), Insert(), and Delete(), where "n" is the number of elements in the
// tree. Complete ordered traversal takes O(n) time.
//
// The implementation is also useful as a fast priority queue.
//
// Copyright (C) 2014, Red Hat, Inc.
//
// This program and the accompanying materials are licensed and made available
// under the terms and conditions of the BSD License that accompanies this
// distribution. The full text of the license may be found at
// http://opensource.org/licenses/bsd-license.php.
//
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
// IMPLIED.
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "An OrderedCollectionLib instance that provides a red-black tree implementation."

#string STR_MODULE_DESCRIPTION          #language en-US "An OrderedCollectionLib instance that provides a red-black tree implementation."

