buckets-js
Version:
Buckets is a complete, fully tested and documented data structure library written in pure JavaScript.
829 lines (502 loc) • 19.1 kB
HTML
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>JsDoc Reference - buckets.Queue</title>
<style type="text/css">
/* default.css */
body
{
font: 13.5px sans-serif;
line-height: 20px;
max-width: 950px;
-webkit-font-smoothing: antialiased;
text-align: justify;
}
h1
{
padding: 0;
color: rgb(65, 131, 196);
margin: 0 auto;
padding-top: 18px;
}
#index
{
margin-top: 15px;
margin-left: 15px;
width: 160px;
position: absolute;
left: 8px;
padding: 8px;
background: #fafafa;
padding-top: 12px;
padding-left: 6px;
padding-right: 12px;
padding-bottom: 0px;
border: 1px solid rgba(0, 0, 0, 0.1);
}
#content
{
margin-left: 220px;
}
.classList li
{
padding: 0;
margin: 0 0 8px 0;
}
.summaryTable {
width: 100%;
}
h2 { font-size: 110%; }
caption, div.sectionTitle
{
box-sizing: border-box;
color: rgb(51, 51, 51);
background-color: #fafafa;
line-height: 25px;
font-family: Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol';
font-size: 14px;
font-style: normal;
font-variant: normal;
font-weight: bold;
text-align: left;
padding: 2px 6px 2px 6px;
border: 1px rgb(216, 216, 216) solid;
}
div.sectionTitle { margin-bottom: 8px; }
.summaryTable thead { display: none; }
.summaryTable td
{
vertical-align: top;
padding: 4px;
border-bottom: 1px rgb(216, 216, 216) solid;
border-right: 1px rgb(216, 216, 216) solid;
border-left: 1px rgb(216, 216, 216) solid;
}
/*col#summaryAttributes {}*/
.summaryTable td.attributes
{
border-left: 1px;
width: 140px;
text-align: right;
}
td.attributes, .fixedFont
{
color: rgb(2, 74, 8);
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
}
.summaryTable td.nameDescription
{
text-align: left;
}
.summaryTable { margin-bottom: 8px; }
.detailList .heading
{
font-weight: bold;
padding-bottom: 6px;
margin-left: 0;
}
.classList {
list-style-type: none;
padding: 0;
margin: 0 0 0 8px;
font-family: sans-serif;
font-size: 1em;
overflow: auto;
}
a { color:#4285f4;
text-decoration: none;
}
hr {
border: 0;
border-top: 1px solid rgb(216, 216, 216);
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
td.nameDescription.fixedFont {
color: rgb(0, 0, 0);
}
span.light {
color: rgb(148, 149, 155);
font-weight: bold;
}
pre {
background: #fafafa;
padding-top: 16px;
padding-bottom: 16px;
padding-left: 16px;
padding-right: 16px;
/* border: 1px solid rgba(0, 0, 0, 0.1); */
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
font-style: normal;
font-variant: normal;
font-weight: normal;
border: 1px solid rgba(0, 0, 0, 0.1);
color: rgb(124, 19, 0);
}
</style>
</head>
<body>
<!-- ============================== header ================================= -->
<!-- begin static/header.html -->
<div id="header">
</div>
<!-- end static/header.html -->
<!-- ============================== classes index ============================ -->
<div id="index">
<!-- begin publish.classesIndex -->
<ul class="classList">
<li><a href="../symbols/buckets.arrays.html">buckets.arrays</a></li>
<li><a href="../symbols/buckets.Bag.html">buckets.Bag</a></li>
<li><a href="../symbols/buckets.BSTree.html">buckets.BSTree</a></li>
<li><a href="../symbols/buckets.Dictionary.html">buckets.Dictionary</a></li>
<li><a href="../symbols/buckets.Heap.html">buckets.Heap</a></li>
<li><a href="../symbols/buckets.LinkedList.html">buckets.LinkedList</a></li>
<li><a href="../symbols/buckets.MultiDictionary.html">buckets.MultiDictionary</a></li>
<li><a href="../symbols/buckets.PriorityQueue.html">buckets.PriorityQueue</a></li>
<li><a href="../symbols/buckets.Queue.html">buckets.Queue</a></li>
<li><a href="../symbols/buckets.Set.html">buckets.Set</a></li>
<li><a href="../symbols/buckets.Stack.html">buckets.Stack</a></li>
</ul>
<!-- end publish.classesIndex -->
</div>
<div id="content">
<!-- ============================== class title ============================ -->
<h1 class="classTitle">
Object buckets.Queue
</h1>
<!-- ============================== class summary ========================== -->
<p class="description">
A queue is a First-In-First-Out (FIFO) data structure, the first
element added to the queue will be the first one to be removed. This
implementation uses a linked list as the underlying storage.
</p>
<!-- ============================== constructor summary ==================== -->
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class buckets.Queue.">
<caption>Object Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/buckets.Queue.html#constructor">buckets.Queue</a></b>()
</div>
<div class="description">Creates an empty queue.</div>
</td>
</tr>
</tbody>
</table>
<!-- ============================== properties summary ===================== -->
<!-- ============================== methods summary ======================== -->
<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class buckets.Queue.">
<caption>Method Summary</caption>
<thead>
<tr>
<th scope="col">Method Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.add">add</a></b>(elem)
</div>
<div class="description">Inserts the specified element into the end of the queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.clear">clear</a></b>()
</div>
<div class="description">Removes all the elements from the queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.contains">contains</a></b>(elem, equalsFunction)
</div>
<div class="description">Returns true if the queue contains the specified element.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.dequeue">dequeue</a></b>()
</div>
<div class="description">Retrieves and removes the head of the queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.enqueue">enqueue</a></b>(elem)
</div>
<div class="description">Inserts the specified element into the end of the queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.equals">equals</a></b>(other, equalsFunction)
</div>
<div class="description">Returns true if the queue is equal to another queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.forEach">forEach</a></b>(callback)
</div>
<div class="description">Executes the provided function once per each element present in the queue in
FIFO order.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.isEmpty">isEmpty</a></b>()
</div>
<div class="description">Checks if the queue is empty.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.peek">peek</a></b>()
</div>
<div class="description">Retrieves, but does not remove, the head of the queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.size">size</a></b>()
</div>
<div class="description">Returns the number of elements in the queue.</div>
</td>
</tr>
<tr>
<td class="nameDescription">
<div class="fixedFont">buckets.Queue.<b><a href="../symbols/buckets.Queue.html#.toArray">toArray</a></b>()
</div>
<div class="description">Returns an array containing all the elements in the queue in FIFO
order.</div>
</td>
</tr>
</tbody>
</table>
<!-- ============================== events summary ======================== -->
<!-- ============================== constructor details ==================== -->
<div class="details"><a name="constructor"> </a>
<div class="sectionTitle">
Object Detail
</div>
<div class="fixedFont">
<b>buckets.Queue</b>()
</div>
<div class="description">
Creates an empty queue.
</div>
</div>
<!-- ============================== field details ========================== -->
<!-- ============================== method details ========================= -->
<div class="sectionTitle">
Method Detail
</div>
<a name=".add"> </a>
<div class="fixedFont"><static>
<span class="light">{boolean}</span>
<span class="light">buckets.Queue.</span><b>add</b>(elem)
</div>
<div class="description">
Inserts the specified element into the end of the queue. Equivalent to enqueue.
</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>elem</b>
</dt>
<dd>The element to insert.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{boolean}</span> True if the element was inserted, or false if it's undefined.</dd>
</dl>
<hr />
<a name=".clear"> </a>
<div class="fixedFont"><static>
<span class="light">buckets.Queue.</span><b>clear</b>()
</div>
<div class="description">
Removes all the elements from the queue.
</div>
<hr />
<a name=".contains"> </a>
<div class="fixedFont"><static>
<span class="light">{boolean}</span>
<span class="light">buckets.Queue.</span><b>contains</b>(elem, equalsFunction)
</div>
<div class="description">
Returns true if the queue contains the specified element.
<p>If the elements inside the queue are
not comparable with the === operator, a custom equals function should be
provided to perform searches, the function must receive two arguments and
return true if they are equal, false otherwise. Example:</p>
<pre>
var petsAreEqualByName = function(pet1, pet2) {
return pet1.name === pet2.name;
}
</pre>
</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>elem</b>
</dt>
<dd>Element to search for.</dd>
<dt>
<span class="light fixedFont">{function(Object|Object):boolean=}</span> <b>equalsFunction</b>
</dt>
<dd>Optional
function to check if two elements are equal.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{boolean}</span> True if the queue contains the specified element,
false otherwise.</dd>
</dl>
<hr />
<a name=".dequeue"> </a>
<div class="fixedFont"><static>
<span class="light">{*}</span>
<span class="light">buckets.Queue.</span><b>dequeue</b>()
</div>
<div class="description">
Retrieves and removes the head of the queue.
</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{*}</span> The head of the queue, or undefined if the queue is empty.</dd>
</dl>
<hr />
<a name=".enqueue"> </a>
<div class="fixedFont"><static>
<span class="light">{boolean}</span>
<span class="light">buckets.Queue.</span><b>enqueue</b>(elem)
</div>
<div class="description">
Inserts the specified element into the end of the queue.
</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>elem</b>
</dt>
<dd>The element to insert.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{boolean}</span> True if the element was inserted, or false if it's undefined.</dd>
</dl>
<hr />
<a name=".equals"> </a>
<div class="fixedFont"><static>
<span class="light">{boolean}</span>
<span class="light">buckets.Queue.</span><b>equals</b>(other, equalsFunction)
</div>
<div class="description">
Returns true if the queue is equal to another queue.
Two queues are equal if they have the same elements in the same order.
</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/buckets.Queue.html">buckets.Queue</a>}</span> <b>other</b>
</dt>
<dd>The other queue.</dd>
<dt>
<span class="light fixedFont">{function(Object|Object):boolean=}</span> <b>equalsFunction</b>
</dt>
<dd>Optional
function to check if two elements are equal. If the elements in the queues
are custom objects you should provide a custom equals function, otherwise
the === operator is used to check equality between elements.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{boolean}</span> True if the queue is equal to the given queue.</dd>
</dl>
<hr />
<a name=".forEach"> </a>
<div class="fixedFont"><static>
<span class="light">buckets.Queue.</span><b>forEach</b>(callback)
</div>
<div class="description">
Executes the provided function once per each element present in the queue in
FIFO order.
</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{function(Object):*}</span> <b>callback</b>
</dt>
<dd>Function to execute, it's
invoked an element as argument, to break the iteration you can
optionally return false inside the callback.</dd>
</dl>
<hr />
<a name=".isEmpty"> </a>
<div class="fixedFont"><static>
<span class="light">{boolean}</span>
<span class="light">buckets.Queue.</span><b>isEmpty</b>()
</div>
<div class="description">
Checks if the queue is empty.
</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{boolean}</span> True if and only if the queue contains no items.</dd>
</dl>
<hr />
<a name=".peek"> </a>
<div class="fixedFont"><static>
<span class="light">{*}</span>
<span class="light">buckets.Queue.</span><b>peek</b>()
</div>
<div class="description">
Retrieves, but does not remove, the head of the queue.
</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{*}</span> The head of the queue, or undefined if the queue is empty.</dd>
</dl>
<hr />
<a name=".size"> </a>
<div class="fixedFont"><static>
<span class="light">{number}</span>
<span class="light">buckets.Queue.</span><b>size</b>()
</div>
<div class="description">
Returns the number of elements in the queue.
</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{number}</span> The number of elements in the queue.</dd>
</dl>
<hr />
<a name=".toArray"> </a>
<div class="fixedFont"><static>
<span class="light">{Array.<*>}</span>
<span class="light">buckets.Queue.</span><b>toArray</b>()
</div>
<div class="description">
Returns an array containing all the elements in the queue in FIFO
order.
</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dd><span class="light fixedFont">{Array.<*>}</span> An array containing all the elements in the queue
in FIFO order.</dd>
</dl>
<!-- ============================== event details ========================= -->
<hr />
</div>
</body>
</html>