// /** @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.
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#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."

