File: datastructures.xml

package info (click to toggle)
php-doc 20250827~git.abe740d%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 71,968 kB
  • sloc: xml: 985,760; php: 25,504; javascript: 671; sh: 177; makefile: 37
file content (132 lines) | stat: -rw-r--r-- 3,555 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<part xml:id="spl.datastructures" xmlns="http://docbook.org/ns/docbook">
 <title>Datastructures</title>

 <partintro>
  <para>
   SPL provides a set of standard datastructures. They are grouped here by their 
   underlying implementation which usually defines their general field of 
   application.
  </para>

  <section>
   <title>Doubly Linked Lists</title>

   <para>
    A Doubly Linked List (DLL) is a list of nodes linked in both directions to 
    each other. Iterator's operations, access to both ends, addition or 
    removal of nodes have a cost of O(1) when the underlying structure is a DLL.
    It hence provides a decent implementation for stacks and queues.
   </para>

   <itemizedlist>
    <listitem>
     <simpara><classname>SplDoublyLinkedList</classname></simpara>
     <itemizedlist>
      <listitem><simpara><classname>SplStack</classname></simpara></listitem>
      <listitem><simpara><classname>SplQueue</classname></simpara></listitem>
     </itemizedlist>
    </listitem>
   </itemizedlist>

  </section>
  <section>
   <title>Heaps</title>

   <para>
    Heaps are tree-like structures that follow the heap-property: each node
    is greater than or equal to its children, when compared using the 
    implemented compare method which is global to the heap.
   </para>

   <itemizedlist>
    <listitem>
     <simpara><classname>SplHeap</classname></simpara>
     <itemizedlist>
      <listitem><simpara><classname>SplMaxHeap</classname></simpara></listitem>
      <listitem><simpara><classname>SplMinHeap</classname></simpara></listitem>
     </itemizedlist>
    </listitem>
    <listitem>
     <simpara><classname>SplPriorityQueue</classname></simpara>
    </listitem>
   </itemizedlist>

  </section>

  <section>
   <title>Arrays</title>

   <para>
    Arrays are structures that store the data in a contiguous way,
    accessible via indexes.
   </para>
   <note>
    <simpara>
     Do not confuse this with PHP's native <type>array</type> type.
     PHP arrays are in reality ordered hashtables.
     However, SPL provides the <classname>ArrayObject</classname> class
     to wrap PHP arrays into an object.
    </simpara>
   </note>

   <itemizedlist>
    <listitem>
     <simpara><classname>SplFixedArray</classname></simpara>
    </listitem>
   </itemizedlist>

  </section>

  <section>
   <title>Map</title>

   <para>
    A map is a datastructure holding key-value pairs. PHP arrays can be seen as maps from integers/strings to values. SPL provides a map from objects to data. This map can also be used as an object set.
   </para>

   <itemizedlist>
    <listitem>
     <simpara><classname>SplObjectStorage</classname></simpara>
    </listitem>
   </itemizedlist>

  </section>
 </partintro>

 &reference.spl.spldoublylinkedlist;
 &reference.spl.splstack;
 &reference.spl.splqueue;

 &reference.spl.splheap;
 &reference.spl.splmaxheap;
 &reference.spl.splminheap;
 &reference.spl.splpriorityqueue;

 &reference.spl.splfixedarray;
 &reference.spl.arrayobject;

 &reference.spl.splobjectstorage;

</part>
<!-- 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
-->