[#BloombergLP-bslstl-TreeNode]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::TreeNode
:relfileprefix: ../../
:mrdocs:

POD&hyphen;like node for a red&hyphen;black tree of parameterized `VALUE` objects&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;treenode&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class VALUE&gt;
class TreeNode
    : public xref:BloombergLP/bslalg/RbTreeNode.adoc[bslalg::RbTreeNode]
----

== Description

This POD&hyphen;like `class` describes a node suitable for use in a red&hyphen;black binary search tree of values of the parameterized `VALUE`&period; This class is a &quot;POD&hyphen;like&quot; to facilitate efficient allocation and use in the context of a container implementation&period; In order to meet the essential requirements of a POD type, this `class` does not define a constructor or destructor&period; The manipulator, `value`, returns a modifiable reference to `d&lowbar;value` so that it may be constructed in&hyphen;place by the appropriate `bsl&colon;&colon;allocator&lowbar;traits` object&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bslalg/RbTreeNode.adoc[bslalg::RbTreeNode]`
| A node in a red&hyphen;black binary search tree&period;
|===

== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/RbTreeNode/Color-048.adoc[`Color`] 
| Enumeration of the two colors used by red&hyphen;black tree nodes&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/RbTreeNode/color-049.adoc[`color`] 
| Return the color of this node&period;
| xref:BloombergLP/bslalg/RbTreeNode/isBlack.adoc[`isBlack`] 
| Return `true` if this node is black&period;
| xref:BloombergLP/bslalg/RbTreeNode/isRed.adoc[`isRed`] 
| Return `true` if this node is red&period;
| xref:BloombergLP/bslalg/RbTreeNode/leftChild-01.adoc[`leftChild`] 
| `leftChild` overloads
| xref:BloombergLP/bslalg/RbTreeNode/makeBlack.adoc[`makeBlack`] 
| Set the color of this node to black&period; Note that this operation is at least as fast as (and potentially faster than) `setColor`&period;
| xref:BloombergLP/bslalg/RbTreeNode/makeRed.adoc[`makeRed`] 
| Set the color of this node to red&period; Note that this operation is at least as fast as (and potentially faster than) `setColor`&period;
| xref:BloombergLP/bslalg/RbTreeNode/parent-0ce.adoc[`parent`] 
| `parent` overloads
| xref:BloombergLP/bslalg/RbTreeNode/reset.adoc[`reset`] 
| Reset this object to have the specified `parent`, `leftChild`, `rightChild`, and `color` property values&period;
| xref:BloombergLP/bslalg/RbTreeNode/rightChild-06.adoc[`rightChild`] 
| `rightChild` overloads
| xref:BloombergLP/bslalg/RbTreeNode/setColor.adoc[`setColor`] 
| Set the color of this node to the specified `value`&period;
| xref:BloombergLP/bslalg/RbTreeNode/setLeftChild.adoc[`setLeftChild`] 
| Set the left child of this node to the specified `address`&period; If `address` is 0, then this node will not have a left child&period;
| xref:BloombergLP/bslalg/RbTreeNode/setParent.adoc[`setParent`] 
| Set the parent of this node to the specified `address`&period;
| xref:BloombergLP/bslalg/RbTreeNode/setRightChild.adoc[`setRightChild`] 
| Set the right child of this node to the specified `address`&period; If `address` is 0, then this node will not have a right child&period;
| xref:BloombergLP/bslalg/RbTreeNode/toggleColor.adoc[`toggleColor`] 
| Set the color of this node to the alternative color&period;
| xref:BloombergLP/bslstl/TreeNode/value-08.adoc[`value`] 
| `value` overloads
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
