Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 938

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: csRedBlackTree&lt; K &gt; Class Template Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csRedBlackTree&lt; K &gt; Class Template Reference<br>
<small>
[<a class="el" href="group__util__containers.html">Containers</a>]</small>
</h1><!-- doxytag: class="csRedBlackTree" -->A red-black-tree.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="redblacktree_8h-source.html">csutil/redblacktree.h</a>&gt;</code>
<p>

<p>
<a href="classcsRedBlackTree-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#bb7a5883317a190a4e38bb64bd8457c1">Contains</a> (const K &amp;key) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether a key is in the tree.  <a href="#bb7a5883317a190a4e38bb64bd8457c1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="13164e69faa484c9324747f1aff57c5a"></a><!-- doxytag: member="csRedBlackTree::csRedBlackTree" ref="13164e69faa484c9324747f1aff57c5a" args="(const csRedBlackTree &amp;other)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#13164e69faa484c9324747f1aff57c5a">csRedBlackTree</a> (const <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a> &amp;other)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#ee599d5e05f65abe451412798340a917">csRedBlackTree</a> (size_t allocatorBlockSize=4096)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a new tree.  <a href="#ee599d5e05f65abe451412798340a917"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#c7518fb2075dedc34a6f116fdeaa4ae1">Delete</a> (const K &amp;key)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a key.  <a href="#c7518fb2075dedc34a6f116fdeaa4ae1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#c978b85e102be8e5457546d8bda452f3">DeleteAll</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete all keys.  <a href="#c978b85e102be8e5457546d8bda452f3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#e2ef9e81ea1a67253709cf20330244cb">Empty</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete all the keys. (Idiomatic alias for <a class="el" href="classcsRedBlackTree.html#c978b85e102be8e5457546d8bda452f3" title="Delete all keys.">DeleteAll()</a>.).  <a href="#e2ef9e81ea1a67253709cf20330244cb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#fda841b60dc8cf996d7cf53b4da401a4">In</a> (const K &amp;key) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether a key is in the tree.  <a href="#fda841b60dc8cf996d7cf53b4da401a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const K *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#28c16110e5c19acce51e7d6fba87044d">Insert</a> (const K &amp;key)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Insert a key.  <a href="#28c16110e5c19acce51e7d6fba87044d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#d7d9c8b92b8b8d646aebe8933ab18eb5">IsEmpty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether this tree has no nodes.  <a href="#d7d9c8b92b8b8d646aebe8933ab18eb5"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="359da05e1c39a394fee542388707c9a3"></a><!-- doxytag: member="csRedBlackTree::Find" ref="359da05e1c39a394fee542388707c9a3" args="(const K2 &amp;other, const K &amp;fallback) const " -->
template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">const K &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#359da05e1c39a394fee542388707c9a3">Find</a> (const K2 &amp;other, const K &amp;fallback) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">const K *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#735f44e12c2527c7ef8cd7e3b9bed188">Find</a> (const K2 &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locate key that is equal to 'other'.  <a href="#735f44e12c2527c7ef8cd7e3b9bed188"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename CB&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#5bafbe778a22b67aa100c9117e08225c">TraverseInOrder</a> (CB &amp;callback) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Traverse tree.  <a href="#5bafbe778a22b67aa100c9117e08225c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#710657a2c0112807cba841ef81c8af4a">NodeColor</a> { <a class="el" href="classcsRedBlackTree.html#710657a2c0112807cba841ef81c8af4a85952371095a369b526db52e5794b3bf">Black</a> =  0, 
<a class="el" href="classcsRedBlackTree.html#710657a2c0112807cba841ef81c8af4aea04a607330d9455e1469e8adc0c6994">Red</a> =  1
 }</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#af8653b108b856d260c850d9dfb0bb74">DeleteFixup</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, <a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *nilParent)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fix up the RB tree after a deletion.  <a href="#af8653b108b856d260c850d9dfb0bb74"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#9348a537f054590c8b33ba9801c29252">DeleteNode</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a node from the tree.  <a href="#9348a537f054590c8b33ba9801c29252"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#d0c22bf6ee82dec27a25b3b111102db9">InsertFixup</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fix up the RB tree after an insert.  <a href="#d0c22bf6ee82dec27a25b3b111102db9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#bb4bfa4479562905674a3796e3964994">IsBlack</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether a node is black. Note that 0 nodes are by definition black.  <a href="#bb4bfa4479562905674a3796e3964994"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#ccf46a723137943cc1531bca8783fdd1">IsRed</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether a node is red.  <a href="#ccf46a723137943cc1531bca8783fdd1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#f77be1ed91062181779ac0ca07a1cb78">LocateNode</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, const K &amp;key) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the node for a key.  <a href="#f77be1ed91062181779ac0ca07a1cb78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#92a6a4c594ac8b7b888113a0424117fe">RecursiveCopy</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&amp;to, <a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *parent, const <a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *from)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Duplicate a subtree.  <a href="#92a6a4c594ac8b7b888113a0424117fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#03a25871df78216416fb1fb8f8ad6f03">RecursiveInsert</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *parent, <a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&amp;node, const K &amp;key)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locate the place where a new node needs to be inserted.  <a href="#03a25871df78216416fb1fb8f8ad6f03"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename CB&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#f973147533424b32acbf425f9bc91f0f">RecursiveTraverseInOrder</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, CB &amp;callback) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Traverse tree.  <a href="#f973147533424b32acbf425f9bc91f0f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#5c85e583feacd98f9b25750941840075">RotateLeft</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *pivot)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Left-rotate subtree around 'pivot'.  <a href="#5c85e583feacd98f9b25750941840075"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#d3eed6215e3c2d441199131f2ac7df3e">RotateRight</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *pivot)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Right-rotate subtree around 'pivot'.  <a href="#d3eed6215e3c2d441199131f2ac7df3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#de3655e4ae89a39283f0d4a581f3ebac">Successor</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return smallest node with a key greater than 'node's.  <a href="#de3655e4ae89a39283f0d4a581f3ebac"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="2b6b7e7f550305ebd1b5b123c30175ad"></a><!-- doxytag: member="csRedBlackTree::Find" ref="2b6b7e7f550305ebd1b5b123c30175ad" args="(const K2 &amp;other, K &amp;fallback)" -->
template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">K &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#2b6b7e7f550305ebd1b5b123c30175ad">Find</a> (const K2 &amp;other, K &amp;fallback)</td></tr>

<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">K *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#60f8bd27940aee03161e5ee8ad61381f">Find</a> (const K2 &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locate key that is equal to 'other'.  <a href="#60f8bd27940aee03161e5ee8ad61381f"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="e5f6c699c04c4ee6e4884ca3b4e2cb79"></a><!-- doxytag: member="csRedBlackTree::RecursiveFind" ref="e5f6c699c04c4ee6e4884ca3b4e2cb79" args="(Node *node, const K2 &amp;other, K &amp;fallback)" -->
template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">K &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#e5f6c699c04c4ee6e4884ca3b4e2cb79">RecursiveFind</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, const K2 &amp;other, K &amp;fallback)</td></tr>

<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="dbaca9b303dcce78b342ecb99c8f4146"></a><!-- doxytag: member="csRedBlackTree::RecursiveFind" ref="dbaca9b303dcce78b342ecb99c8f4146" args="(Node *node, const K2 &amp;other, const K &amp;fallback) const " -->
template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">const K &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#dbaca9b303dcce78b342ecb99c8f4146">RecursiveFind</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, const K2 &amp;other, const K &amp;fallback) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="412771547330fef2500d672b0088b2d7"></a><!-- doxytag: member="csRedBlackTree::RecursiveFind" ref="412771547330fef2500d672b0088b2d7" args="(Node *node, const K2 &amp;other)" -->
template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">K *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#412771547330fef2500d672b0088b2d7">RecursiveFind</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, const K2 &amp;other)</td></tr>

<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename K2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">const K *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#7a531ac03a134b880e0a2df2b3e3f974">RecursiveFind</a> (<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *node, const K2 &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locate key that is equal to 'other'.  <a href="#7a531ac03a134b880e0a2df2b3e3f974"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ab641d26f1c241e1d1e57046778244eb"></a><!-- doxytag: member="csRedBlackTree::nodeAlloc" ref="ab641d26f1c241e1d1e57046778244eb" args="" -->
<a class="el" href="classcsBlockAllocator.html">csBlockAllocator</a><br>
&lt; <a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a>,<br>
 <a class="el" href="classCS_1_1Memory_1_1AllocatorAlign.html">CS::Memory::AllocatorAlign</a>&lt; 2 &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#ab641d26f1c241e1d1e57046778244eb">nodeAlloc</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7e659dd5f85a01611a663aa88f9107ec"></a><!-- doxytag: member="csRedBlackTree::root" ref="7e659dd5f85a01611a663aa88f9107ec" args="" -->
<a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html#7e659dd5f85a01611a663aa88f9107ec">root</a></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A node in the tree.  <a href="structcsRedBlackTree_1_1Node.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename K&gt;<br>
 class csRedBlackTree&lt; K &gt;</h3>

A red-black-tree. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Does not allow duplicate keys. <p>
Uses csComparator&lt;&gt; for key comparisons. <p>
Only stores keys. If you need a key-value-map, look at <a class="el" href="classcsRedBlackTreeMap.html" title="Key-value-map, backed by csRedBlackTree.">csRedBlackTreeMap</a>. </dd></dl>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00047">47</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="710657a2c0112807cba841ef81c8af4a"></a><!-- doxytag: member="csRedBlackTree::NodeColor" ref="710657a2c0112807cba841ef81c8af4a" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classcsRedBlackTree.html#710657a2c0112807cba841ef81c8af4a">csRedBlackTree::NodeColor</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="710657a2c0112807cba841ef81c8af4a85952371095a369b526db52e5794b3bf"></a><!-- doxytag: member="Black" ref="710657a2c0112807cba841ef81c8af4a85952371095a369b526db52e5794b3bf" args="" -->Black</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="710657a2c0112807cba841ef81c8af4aea04a607330d9455e1469e8adc0c6994"></a><!-- doxytag: member="Red" ref="710657a2c0112807cba841ef81c8af4aea04a607330d9455e1469e8adc0c6994" args="" -->Red</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00050">50</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="ee599d5e05f65abe451412798340a917"></a><!-- doxytag: member="csRedBlackTree::csRedBlackTree" ref="ee599d5e05f65abe451412798340a917" args="(size_t allocatorBlockSize=4096)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::<a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>allocatorBlockSize</em> = <code>4096</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Construct a new tree. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocatorBlockSize</em>&nbsp;</td><td>Block size in bytes used by the internal block allocator for nodes. </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00447">447</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="bb7a5883317a190a4e38bb64bd8457c1"></a><!-- doxytag: member="csRedBlackTree::Contains" ref="bb7a5883317a190a4e38bb64bd8457c1" args="(const K &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Contains           </td>
          <td>(</td>
          <td class="paramtype">const K &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether a key is in the tree. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>This is rigidly equivalent to Contains(key), but may be considered more idiomatic by some. </dd></dl>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00489">489</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c7518fb2075dedc34a6f116fdeaa4ae1"></a><!-- doxytag: member="csRedBlackTree::Delete" ref="c7518fb2075dedc34a6f116fdeaa4ae1" args="(const K &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Delete           </td>
          <td>(</td>
          <td class="paramtype">const K &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete a key. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Whether the deletion was successful. Fails if the key is not in the tree. </dd></dl>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00472">472</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c978b85e102be8e5457546d8bda452f3"></a><!-- doxytag: member="csRedBlackTree::DeleteAll" ref="c978b85e102be8e5457546d8bda452f3" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::DeleteAll           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete all keys. 
<p>

<p>Reimplemented in <a class="el" href="classcsRedBlackTreeMap.html#ded0c9ec9ce6e82f440b6adec0171181">csRedBlackTreeMap&lt; K, T &gt;</a>.</p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00506">506</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00512">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Empty()</a>.</p>

</div>
</div><p>
<a class="anchor" name="af8653b108b856d260c850d9dfb0bb74"></a><!-- doxytag: member="csRedBlackTree::DeleteFixup" ref="af8653b108b856d260c850d9dfb0bb74" args="(Node *node, Node *nilParent)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::DeleteFixup           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>nilParent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fix up the RB tree after a deletion. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00251">251</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00214">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::DeleteNode()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9348a537f054590c8b33ba9801c29252"></a><!-- doxytag: member="csRedBlackTree::DeleteNode" ref="9348a537f054590c8b33ba9801c29252" args="(Node *node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::DeleteNode           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete a node from the tree. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00214">214</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00472">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Delete()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e2ef9e81ea1a67253709cf20330244cb"></a><!-- doxytag: member="csRedBlackTree::Empty" ref="e2ef9e81ea1a67253709cf20330244cb" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Empty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete all the keys. (Idiomatic alias for <a class="el" href="classcsRedBlackTree.html#c978b85e102be8e5457546d8bda452f3" title="Delete all keys.">DeleteAll()</a>.). 
<p>

<p>Reimplemented in <a class="el" href="classcsRedBlackTreeMap.html#2033603f8749d7126f0832976ea7b7aa">csRedBlackTreeMap&lt; K, T &gt;</a>.</p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00512">512</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="735f44e12c2527c7ef8cd7e3b9bed188"></a><!-- doxytag: member="csRedBlackTree::Find" ref="735f44e12c2527c7ef8cd7e3b9bed188" args="(const K2 &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
<div class="memtemplate">
template&lt;typename K2&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const K* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Find           </td>
          <td>(</td>
          <td class="paramtype">const K2 &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Locate key that is equal to 'other'. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00494">494</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="60f8bd27940aee03161e5ee8ad61381f"></a><!-- doxytag: member="csRedBlackTree::Find" ref="60f8bd27940aee03161e5ee8ad61381f" args="(const K2 &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
<div class="memtemplate">
template&lt;typename K2&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">K* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Find           </td>
          <td>(</td>
          <td class="paramtype">const K2 &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Locate key that is equal to 'other'. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00415">415</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="fda841b60dc8cf996d7cf53b4da401a4"></a><!-- doxytag: member="csRedBlackTree::In" ref="fda841b60dc8cf996d7cf53b4da401a4" args="(const K &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::In           </td>
          <td>(</td>
          <td class="paramtype">const K &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether a key is in the tree. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00480">480</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00489">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Contains()</a>.</p>

</div>
</div><p>
<a class="anchor" name="28c16110e5c19acce51e7d6fba87044d"></a><!-- doxytag: member="csRedBlackTree::Insert" ref="28c16110e5c19acce51e7d6fba87044d" args="(const K &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const K* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Insert           </td>
          <td>(</td>
          <td class="paramtype">const K &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Insert a key. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the copy of the key stored in the tree, or 0 if the key already exists. </dd></dl>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00460">460</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="d0c22bf6ee82dec27a25b3b111102db9"></a><!-- doxytag: member="csRedBlackTree::InsertFixup" ref="d0c22bf6ee82dec27a25b3b111102db9" args="(Node *node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::InsertFixup           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fix up the RB tree after an insert. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00151">151</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00460">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Insert()</a>.</p>

</div>
</div><p>
<a class="anchor" name="bb4bfa4479562905674a3796e3964994"></a><!-- doxytag: member="csRedBlackTree::IsBlack" ref="bb4bfa4479562905674a3796e3964994" args="(Node *node) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::IsBlack           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether a node is black. Note that 0 nodes are by definition black. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00145">145</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00251">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::DeleteFixup()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d7d9c8b92b8b8d646aebe8933ab18eb5"></a><!-- doxytag: member="csRedBlackTree::IsEmpty" ref="d7d9c8b92b8b8d646aebe8933ab18eb5" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::IsEmpty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns whether this tree has no nodes. 
<p>

<p>Reimplemented in <a class="el" href="classcsRedBlackTreeMap.html#5c30a0cb98550ffbc0820bf1e37ee300">csRedBlackTreeMap&lt; K, T &gt;</a>.</p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00514">514</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ccf46a723137943cc1531bca8783fdd1"></a><!-- doxytag: member="csRedBlackTree::IsRed" ref="ccf46a723137943cc1531bca8783fdd1" args="(Node *node) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::IsRed           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether a node is red. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00148">148</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00251">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::DeleteFixup()</a>, and <a class="el" href="redblacktree_8h-source.html#l00151">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::InsertFixup()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f77be1ed91062181779ac0ca07a1cb78"></a><!-- doxytag: member="csRedBlackTree::LocateNode" ref="f77be1ed91062181779ac0ca07a1cb78" args="(Node *node, const K &amp;key) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a>* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::LocateNode           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const K &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find the node for a key. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00322">322</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00472">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Delete()</a>, <a class="el" href="redblacktree_8h-source.html#l00480">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::In()</a>, and <a class="el" href="redblacktree_8h-source.html#l00322">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::LocateNode()</a>.</p>

</div>
</div><p>
<a class="anchor" name="92a6a4c594ac8b7b888113a0424117fe"></a><!-- doxytag: member="csRedBlackTree::RecursiveCopy" ref="92a6a4c594ac8b7b888113a0424117fe" args="(Node *&amp;to, Node *parent, const Node *from)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::RecursiveCopy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&amp;&nbsp;</td>
          <td class="paramname"> <em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Duplicate a subtree. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00427">427</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00449">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::csRedBlackTree()</a>, and <a class="el" href="redblacktree_8h-source.html#l00427">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::RecursiveCopy()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7a531ac03a134b880e0a2df2b3e3f974"></a><!-- doxytag: member="csRedBlackTree::RecursiveFind" ref="7a531ac03a134b880e0a2df2b3e3f974" args="(Node *node, const K2 &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
<div class="memtemplate">
template&lt;typename K2&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const K* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::RecursiveFind           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const K2 &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Locate key that is equal to 'other'. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00355">355</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00415">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Find()</a>, and <a class="el" href="redblacktree_8h-source.html#l00355">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::RecursiveFind()</a>.</p>

</div>
</div><p>
<a class="anchor" name="03a25871df78216416fb1fb8f8ad6f03"></a><!-- doxytag: member="csRedBlackTree::RecursiveInsert" ref="03a25871df78216416fb1fb8f8ad6f03" args="(Node *parent, Node *&amp;node, const K &amp;key)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a>* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::RecursiveInsert           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const K &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Locate the place where a new node needs to be inserted. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00082">82</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00460">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::Insert()</a>, and <a class="el" href="redblacktree_8h-source.html#l00082">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::RecursiveInsert()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f973147533424b32acbf425f9bc91f0f"></a><!-- doxytag: member="csRedBlackTree::RecursiveTraverseInOrder" ref="f973147533424b32acbf425f9bc91f0f" args="(Node *node, CB &amp;callback) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
<div class="memtemplate">
template&lt;typename CB&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::RecursiveTraverseInOrder           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CB &amp;&nbsp;</td>
          <td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Traverse tree. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00405">405</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00405">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::RecursiveTraverseInOrder()</a>, and <a class="el" href="redblacktree_8h-source.html#l00519">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::TraverseInOrder()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5c85e583feacd98f9b25750941840075"></a><!-- doxytag: member="csRedBlackTree::RotateLeft" ref="5c85e583feacd98f9b25750941840075" args="(Node *pivot)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::RotateLeft           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>pivot</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Left-rotate subtree around 'pivot'. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00105">105</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00251">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::DeleteFixup()</a>, and <a class="el" href="redblacktree_8h-source.html#l00151">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::InsertFixup()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d3eed6215e3c2d441199131f2ac7df3e"></a><!-- doxytag: member="csRedBlackTree::RotateRight" ref="d3eed6215e3c2d441199131f2ac7df3e" args="(Node *pivot)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::RotateRight           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>pivot</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Right-rotate subtree around 'pivot'. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00125">125</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00251">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::DeleteFixup()</a>, and <a class="el" href="redblacktree_8h-source.html#l00151">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::InsertFixup()</a>.</p>

</div>
</div><p>
<a class="anchor" name="de3655e4ae89a39283f0d4a581f3ebac"></a><!-- doxytag: member="csRedBlackTree::Successor" ref="de3655e4ae89a39283f0d4a581f3ebac" args="(Node *node) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a>* <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::Successor           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRedBlackTree_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return smallest node with a key greater than 'node's. 
<p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00335">335</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

<p>Referenced by <a class="el" href="redblacktree_8h-source.html#l00214">csRedBlackTree&lt; csRedBlackTreePayload&lt; K, T &gt; &gt;::DeleteNode()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5bafbe778a22b67aa100c9117e08225c"></a><!-- doxytag: member="csRedBlackTree::TraverseInOrder" ref="5bafbe778a22b67aa100c9117e08225c" args="(CB &amp;callback) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K&gt; </div>
<div class="memtemplate">
template&lt;typename CB&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsRedBlackTree.html">csRedBlackTree</a>&lt; K &gt;::TraverseInOrder           </td>
          <td>(</td>
          <td class="paramtype">CB &amp;&nbsp;</td>
          <td class="paramname"> <em>callback</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Traverse tree. 
<p>

<p>Reimplemented in <a class="el" href="classcsRedBlackTreeMap.html#5d77be825a7295d7afa92bea103ddbc9">csRedBlackTreeMap&lt; K, T &gt;</a>.</p>

<p>Definition at line <a class="el" href="redblacktree_8h-source.html#l00519">519</a> of file <a class="el" href="redblacktree_8h-source.html">redblacktree.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csutil/<a class="el" href="redblacktree_8h-source.html">redblacktree.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>