Files
archived-doc-pt-br/reference/ds/ds.deque.xml

169 lines
4.8 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: fernandowobeto Status: ready --><!-- CREDITS: fernandowobeto -->
<reference xml:id="class.ds-deque" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>A classe Deque</title>
<titleabbrev>Ds\Deque</titleabbrev>
<partintro>
<!-- {{{ Ds\Deque intro -->
<section xml:id="ds-deque.intro">
&reftitle.intro;
<para>
Um Deque (pronunciado "deck") é uma sequência de valores
em um buffer contíguo que cresce e diminui automaticamente.
O nome é uma abreviação comum de "double-ended queue" e é usado
internamente por <classname>Ds\Queue</classname>.
</para>
<para>
Dois ponteiros são usados para acompanhar um head e um tail. Os ponteiros podem
"envolver" a extremidade do buffer, o que evita a necessidade de mover outros
valores para criar espaço. Isso torna shift e unshift muito rápidos
algo que um <classname>Ds\Vector</classname> não pode competir.
</para>
<para>
Acesso a um valor pelo índice requer uma tradução entre o índice e sua
posição correspondente no buffer: <code>((head + position) % capacity)</code>.
</para>
</section>
<!-- }}} -->
<section xml:id="ds-deque.strengths">
<title xmlns="http://docbook.org/ns/docbook">Pontos Fortes</title>
<para>
<simplelist>
<member>Suporta a sintaxe de array (colchetes).</member>
<member>Utiliza menos memória geral do que um &array; para o mesmo número de valores.</member>
<member>Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.</member>
<member>
<function>get</function>,
<function>set</function>,
<function>push</function>,
<function>pop</function>,
<function>shift</function> e
<function>unshift</function> são todos O(1).
</member>
</simplelist>
</para>
</section>
<section xml:id="ds-deque.weaknesses">
<title xmlns="http://docbook.org/ns/docbook">Pontos Fracos</title>
<para>
<simplelist>
<member>A capacidade deve ser uma potência de 2.</member>
<member>
<function>insert</function> e
<function>remove</function> são O(n).
</member>
</simplelist>
</para>
</section>
<section xml:id="ds-deque.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>Ds\Deque</classname></ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>Ds\Deque</classname>
</ooclass>
<oointerface>
<interfacename>Ds\Sequence</interfacename>
</oointerface>
<oointerface>
<interfacename>ArrayAccess</interfacename>
</oointerface>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="ds-deque.constants.min-capacity">Ds\Deque::MIN_CAPACITY</varname>
<initializer>8</initializer>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ds-deque')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis)">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ Ds\Deque constants -->
<section xml:id="ds-deque.constants">
&reftitle.constants;
<variablelist>
<varlistentry xml:id="ds-deque.constants.min-capacity">
<term><constant>Ds\Deque::MIN_CAPACITY</constant></term>
<listitem>
<para></para>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
<section role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>PECL ds 1.3.0</entry>
<entry>
A classe agora implementa <classname>ArrayAccess</classname>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</section>
</partintro>
&reference.ds.ds.entities.deque;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->