Browse Source
Add doxygen docs for SplDoublyLinkedList, SplStack, SplQueue
experimental/first_unicode_implementation
Add doxygen docs for SplDoublyLinkedList, SplStack, SplQueue
experimental/first_unicode_implementation
5 changed files with 199 additions and 4 deletions
-
2NEWS
-
100ext/spl/internal/spldoublylinkedlist.inc
-
50ext/spl/internal/splqueue.inc
-
35ext/spl/internal/splstack.inc
-
16ext/spl/spl.php
@ -0,0 +1,100 @@ |
|||
<?php |
|||
|
|||
/** @file spldoublylinkedlist.inc |
|||
* @ingroup SPL |
|||
* @brief class SplDoublyLinkedList |
|||
* @author Etienne Kneuss |
|||
* @date 2008 |
|||
* |
|||
* SPL - Standard PHP Library |
|||
*/ |
|||
|
|||
/** @ingroup SPL |
|||
* @brief Doubly Linked List |
|||
* @since PHP 5.3 |
|||
* |
|||
* The SplDoublyLinkedList class provides the main functionnalities of a |
|||
* doubly linked list (DLL). |
|||
*/ |
|||
class SplDoublyLinkedList implements Traversable, ArrayAccess, Countable |
|||
{ |
|||
|
|||
/** Iterator mode |
|||
* @see setIteratorMode |
|||
*/ |
|||
const IT_MODE_LIFO = 0x00000001; |
|||
|
|||
/** Iterator mode |
|||
* @see setIteratorMode |
|||
*/ |
|||
const IT_MODE_FIFO = 0x00000000; |
|||
|
|||
|
|||
/** Iterator mode |
|||
* @see setIteratorMode |
|||
*/ |
|||
const IT_MODE_KEEP = 0x00000000; |
|||
|
|||
/** Iterator mode |
|||
* @see setIteratorMode |
|||
*/ |
|||
const IT_MODE_DELETE = 0x00000002; |
|||
|
|||
/** @return the element popped from the end of the DLL. |
|||
*/ |
|||
function pop() {/**/} |
|||
|
|||
/** @return the element shifted from the beginning of the DLL. |
|||
*/ |
|||
function shift() {/**/} |
|||
|
|||
/** Pushes an element to the end of the DLL. |
|||
* @param $data variable to add to the DLL. |
|||
*/ |
|||
function push($data) {/**/} |
|||
|
|||
/** Adds an element to the beginning of the DLL. |
|||
* @param $data variable to add to the DLL. |
|||
*/ |
|||
function unshift($data) {/**/} |
|||
|
|||
/** @return the element at the beginning of the DLL. |
|||
*/ |
|||
function top() {/**/} |
|||
|
|||
/** @return the element at the end of the DLL. |
|||
*/ |
|||
function bottom() {/**/} |
|||
|
|||
/** @return number elements in the DLL. |
|||
*/ |
|||
function count() {/**/} |
|||
|
|||
/** @return whether the DLL is empty. |
|||
*/ |
|||
function isEmpty() {/**/} |
|||
|
|||
/** Changes the iteration mode. There are two orthogonal sets of modes that |
|||
* can be set: |
|||
* - The direction of the iteration (either one or the other) |
|||
* - SplDoublyLnkedList::IT_MODE_LIFO (Stack style) |
|||
* - SplDoublyLnkedList::IT_MODE_FIFO (Queue style) |
|||
* |
|||
* - The behavior of the iterator (either one or the other) |
|||
* - SplDoublyLnkedList::IT_MODE_DELETE (Elements are deleted by the iterator) |
|||
* - SplDoublyLnkedList::IT_MODE_KEEP (Elements are traversed by the iterator) |
|||
* |
|||
* The default mode is 0 : SplDoublyLnkedList::IT_MODE_FIFO | SplDoublyLnkedList::IT_MODE_KEEP |
|||
* |
|||
* @param $mode new mode of iteration |
|||
*/ |
|||
function setIteratorMode($mode) {/**/} |
|||
|
|||
/** @return the current iteration mode |
|||
* @see setIteratorMode |
|||
*/ |
|||
function getIteratorMode() {/**/} |
|||
|
|||
} |
|||
|
|||
?> |
|||
@ -0,0 +1,50 @@ |
|||
<?php |
|||
|
|||
/** @file splqueue.inc |
|||
* @ingroup SPL |
|||
* @brief class SplQueue |
|||
* @author Etienne Kneuss |
|||
* @date 2008 |
|||
* |
|||
* SPL - Standard PHP Library |
|||
*/ |
|||
|
|||
/** @ingroup SPL |
|||
* @brief Implementation of a Queue through a DoublyLinkedList. As SplQueue |
|||
* extends SplDoublyLinkedList, unshift() and pop() are still available even |
|||
* though they don't make much sense for a queue. For convenience, two aliases |
|||
* are available: |
|||
* - enqueue() is an alias of push() |
|||
* - dequeue() is an alias of shift() |
|||
* |
|||
* @since PHP 5.3 |
|||
* |
|||
* The SplQueue class provides the main functionnalities of a |
|||
* queue implemented by a doubly linked list. |
|||
*/ |
|||
class SplQueue extends SplDoublyLinkedList |
|||
{ |
|||
/** Changes the iteration mode. For queues, the direction mode |
|||
* is frozen. Attempting to modify it will result in an RuntimeException. |
|||
* |
|||
* @throws RuntimeException |
|||
* @param $mode new mode of iteration |
|||
* @see SplDoublyLinkedList::setIteratorMode |
|||
*/ |
|||
function setIteratorMode($mode) {/**/} |
|||
|
|||
/** @return the first element of the queue. |
|||
* @note dequeue is an alias of push() |
|||
* @see splDoublyLinkedList::push() |
|||
*/ |
|||
function dequeue() {/**/} |
|||
|
|||
/** Pushes an element at the end of the queue. |
|||
* @param $data variable to add to the queue. |
|||
* @note enqueue is an alias of shift() |
|||
* @see splDoublyLinkedList::shift() |
|||
*/ |
|||
function enqueue($data) {/**/} |
|||
} |
|||
|
|||
?> |
|||
@ -0,0 +1,35 @@ |
|||
<?php |
|||
|
|||
/** @file splstack.inc |
|||
* @ingroup SPL |
|||
* @brief class SplStack |
|||
* @author Etienne Kneuss |
|||
* @date 2008 |
|||
* |
|||
* SPL - Standard PHP Library |
|||
*/ |
|||
|
|||
|
|||
/** @ingroup SPL |
|||
* @brief Implementation of a stack through a DoublyLinkedList. As SplStack |
|||
* extends SplDoublyLinkedList, shift() and unshift() are still available even |
|||
* though they don't make much sense for a stack. |
|||
* |
|||
* @since PHP 5.3 |
|||
* |
|||
* The SplStack class provides the main functionnalities of a |
|||
* stack implemented by a doubly linked list. |
|||
*/ |
|||
class SplStack extends SplDoublyLinkedList |
|||
{ |
|||
/** Changes the iteration mode. For stacks, the direction mode |
|||
* is frozen. Attempting to modify it will result in an RuntimeException. |
|||
* |
|||
* @throws RuntimeException |
|||
* @param $mode new mode of iteration |
|||
* @see SplDoublyLinkedList::setIteratorMode |
|||
*/ |
|||
function setIteratorMode($mode) {/**/} |
|||
} |
|||
|
|||
?> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue