blob: fd6e7d4ac4a2f3efd23622f52c1499601e0adb23 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Lucene.Net: Lucene.Net.Util.PriorityQueue&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="lucene-net-icon-128x128.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Lucene.Net
&#160;<span id="projectnumber">3.0.3</span>
</div>
<div id="projectbrief">Lucene.Net is a .NET port of the Java Lucene Indexing Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="Index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Packages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Properties</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_lucene.html">Lucene</a></li><li class="navelem"><a class="el" href="namespace_lucene_1_1_net.html">Net</a></li><li class="navelem"><a class="el" href="namespace_lucene_1_1_net_1_1_util.html">Util</a></li><li class="navelem"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html">PriorityQueue< T ></a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Lucene.Net.Util.PriorityQueue&lt; T &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>A PriorityQueue maintains a partial ordering of its elements such that the least element can always be found in constant time. Put()'s and pop()'s require log(size) time.
<a href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae168921401633b44aa9fc020984229e0"><td class="memItemLeft" align="right" valign="top">abstract bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#ae168921401633b44aa9fc020984229e0">LessThan</a> (T a, T b)</td></tr>
<tr class="memdesc:ae168921401633b44aa9fc020984229e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the ordering of objects in this priority queue. Subclasses must define this one method. <a href="#ae168921401633b44aa9fc020984229e0"></a><br/></td></tr>
<tr class="separator:ae168921401633b44aa9fc020984229e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eb5aea54d9933b046b24e4479d1dafd"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#a8eb5aea54d9933b046b24e4479d1dafd">Add</a> (T element)</td></tr>
<tr class="memdesc:a8eb5aea54d9933b046b24e4479d1dafd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an Object to a PriorityQueue in log(size) time. If one tries to add more objects than maxSize from initialize an System.IndexOutOfRangeException is thrown. <a href="#a8eb5aea54d9933b046b24e4479d1dafd"></a><br/></td></tr>
<tr class="separator:a8eb5aea54d9933b046b24e4479d1dafd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8324416bbd0427bf908b8f2297a99c1"><td class="memItemLeft" align="right" valign="top">virtual T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#ac8324416bbd0427bf908b8f2297a99c1">InsertWithOverflow</a> (T element)</td></tr>
<tr class="memdesc:ac8324416bbd0427bf908b8f2297a99c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an Object to a PriorityQueue in log(size) time. It returns the object (if any) that was dropped off the heap because it was full. This can be the given parameter (in case it is smaller than the full heap's minimum, and couldn't be added), or another object that was previously the smallest value in the heap and now has been replaced by a larger one, or null if the queue wasn't yet full with maxSize elements. <a href="#ac8324416bbd0427bf908b8f2297a99c1"></a><br/></td></tr>
<tr class="separator:ac8324416bbd0427bf908b8f2297a99c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5ac87f7d0cd6aab82de9921af5e18e4"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#ab5ac87f7d0cd6aab82de9921af5e18e4">Top</a> ()</td></tr>
<tr class="memdesc:ab5ac87f7d0cd6aab82de9921af5e18e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the least element of the PriorityQueue in constant time. <a href="#ab5ac87f7d0cd6aab82de9921af5e18e4"></a><br/></td></tr>
<tr class="separator:ab5ac87f7d0cd6aab82de9921af5e18e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf887603a88dab648d510e7e786d5423"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#adf887603a88dab648d510e7e786d5423">Pop</a> ()</td></tr>
<tr class="memdesc:adf887603a88dab648d510e7e786d5423"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and returns the least element of the PriorityQueue in log(size) time. <a href="#adf887603a88dab648d510e7e786d5423"></a><br/></td></tr>
<tr class="separator:adf887603a88dab648d510e7e786d5423"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a65ae316adbab3e7fb6bb58252b7a2a"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#a0a65ae316adbab3e7fb6bb58252b7a2a">UpdateTop</a> ()</td></tr>
<tr class="memdesc:a0a65ae316adbab3e7fb6bb58252b7a2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Should be called when the Object at top changes values. Still log(n) worst case, but it's at least twice as fast to <a href="#a0a65ae316adbab3e7fb6bb58252b7a2a"></a><br/></td></tr>
<tr class="separator:a0a65ae316adbab3e7fb6bb58252b7a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce7118eba5559440cd7f26f686836d2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#adce7118eba5559440cd7f26f686836d2">Size</a> ()</td></tr>
<tr class="memdesc:adce7118eba5559440cd7f26f686836d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of elements currently stored in the PriorityQueue. <a href="#adce7118eba5559440cd7f26f686836d2"></a><br/></td></tr>
<tr class="separator:adce7118eba5559440cd7f26f686836d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaf0ddb271f95028ebb0363eb90397cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_priority_queue_3_01_t_01_4.html#acaf0ddb271f95028ebb0363eb90397cb">Clear</a> ()</td></tr>
<tr class="memdesc:acaf0ddb271f95028ebb0363eb90397cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all entries from the PriorityQueue. <a href="#acaf0ddb271f95028ebb0363eb90397cb"></a><br/></td></tr>
<tr class="separator:acaf0ddb271f95028ebb0363eb90397cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A PriorityQueue maintains a partial ordering of its elements such that the least element can always be found in constant time. Put()'s and pop()'s require log(size) time. </p>
<p><b>NOTE</b>: This class pre-allocates a full array of length <code>maxSize+1</code>, in Initialize.</p>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00036">36</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8eb5aea54d9933b046b24e4479d1dafd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">T Lucene.Net.Util.PriorityQueue&lt; T &gt;.Add </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>element</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds an Object to a PriorityQueue in log(size) time. If one tries to add more objects than maxSize from initialize an System.IndexOutOfRangeException is thrown. </p>
<dl class="section return"><dt>Returns</dt><dd>the new 'top' element in the queue. </dd></dl>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00141">141</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<a class="anchor" id="acaf0ddb271f95028ebb0363eb90397cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Lucene.Net.Util.PriorityQueue&lt; T &gt;.Clear </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes all entries from the PriorityQueue. </p>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00233">233</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<a class="anchor" id="ac8324416bbd0427bf908b8f2297a99c1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual T Lucene.Net.Util.PriorityQueue&lt; T &gt;.InsertWithOverflow </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>element</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds an Object to a PriorityQueue in log(size) time. It returns the object (if any) that was dropped off the heap because it was full. This can be the given parameter (in case it is smaller than the full heap's minimum, and couldn't be added), or another object that was previously the smallest value in the heap and now has been replaced by a larger one, or null if the queue wasn't yet full with maxSize elements. </p>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00158">158</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<a class="anchor" id="ae168921401633b44aa9fc020984229e0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract bool Lucene.Net.Util.PriorityQueue&lt; T &gt;.LessThan </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the ordering of objects in this priority queue. Subclasses must define this one method. </p>
</div>
</div>
<a class="anchor" id="adf887603a88dab648d510e7e786d5423"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">T Lucene.Net.Util.PriorityQueue&lt; T &gt;.Pop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes and returns the least element of the PriorityQueue in log(size) time. </p>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00191">191</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<a class="anchor" id="adce7118eba5559440cd7f26f686836d2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int Lucene.Net.Util.PriorityQueue&lt; T &gt;.Size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of elements currently stored in the PriorityQueue. </p>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00227">227</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<a class="anchor" id="ab5ac87f7d0cd6aab82de9921af5e18e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">T Lucene.Net.Util.PriorityQueue&lt; T &gt;.Top </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the least element of the PriorityQueue in constant time. </p>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00179">179</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<a class="anchor" id="a0a65ae316adbab3e7fb6bb58252b7a2a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">T Lucene.Net.Util.PriorityQueue&lt; T &gt;.UpdateTop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Should be called when the Object at top changes values. Still log(n) worst case, but it's at least twice as fast to </p>
<p><code> pq.top().change(); pq.updateTop(); </code> instead of <code> o = pq.pop(); o.change(); pq.push(o); </code> </p>
<dl class="section return"><dt>Returns</dt><dd>the new 'top' element.</dd></dl>
<p>Definition at line <a class="el" href="_priority_queue_8cs_source.html#l00220">220</a> of file <a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>core/Util/<a class="el" href="_priority_queue_8cs_source.html">PriorityQueue.cs</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:59 for Lucene.Net by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>