Login   Register  
PHP Classes
elePHPant
Icontem

File: Ejemplo2.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Matías montes  >  List  >  Ejemplo2.php  >  Download  
File: Ejemplo2.php
Role: Example script
Content type: text/plain
Description: Example using objects and chained lists
Class: List
Manage double-linked lists of sorted elements
Author: By
Last change:
Date: 9 years ago
Size: 3,248 bytes
 

Contents

Class file image Download
<?php
/******************************************************************************
 *       BBBB         AAA    RRRR    BBBB      AAA    ZZZZZZ  U     U  L           *
 *       B   B    A    A    R    R   B   B     A   A       ZZ  U     U  L           *
 *       B   B   A     A  R    R   B   B    A      A        ZZ   U     U  L           *
 *       BBBB       A     A  RRRR    BBBB    A     A     Z    U     U  L           *
 *       B   B   AAAAAAA  R  R    B   B   AAAAAAA    Z     U     U  L           *
 *     B    B  A     A  R   R   B    B  A     A   ZZ     U     U  L           *
 *     B    B  A     A  R    R  B    B  A     A  ZZ       U   U   L           *
 *     BBBBB   A     A  R    R  BBBBB   A     A  ZZZZZZ    UUU    LLLLLLL     *
 ******************************************************************************/

/* Ejemplo de utilización de Lista Genérica en múltiples niveles
 * Descripción: En este ejemplo se muestra el uso de una lista encadenada
 * utilizando datos de tipo Objeto.
 * Autor: Matías Montes
 * Versión : 2.0
 */

/******************************************************************************/
/* Librerías y definiciones requeridas */
/*-------------------------------------*/

require_once("class.Lista.php");

if( !
defined("MAX") ) define("MAX"10);


class 
Nivel1
{
    var 
$clave;
    var 
$sublista;

    function 
Nivel1($clave)
    {
        
$this->clave $clave;
        
$this->sublista = new Lista("CompararNivel2");
    }
}

function 
CompararNivel1($DatoEnteroIzq $DatoEnteroDer)
{
   
$resultado IGUAL;

   if ( (
$DatoEnteroIzq->clave) == ($DatoEnteroDer->clave) ) $resultado IGUAL;
   if ( (
$DatoEnteroIzq->clave) >  ($DatoEnteroDer->clave) ) $resultado MAYOR;
   if ( (
$DatoEnteroIzq->clave) <  ($DatoEnteroDer->clave) ) $resultado MENOR;

   return 
resultado;
}

function 
CompararNivel2($DatoEnteroIzq $DatoEnteroDer)
{

   
$resultado IGUAL;

   if ( (
$DatoEnteroIzq) == ($DatoEnteroDer) ) $resultado IGUAL;
   if ( (
$DatoEnteroIzq) >  ($DatoEnteroDer) ) $resultado MAYOR;
   if ( (
$DatoEnteroIzq) <  ($DatoEnteroDer) ) $resultado MENOR;

   return 
$resultado;
}

/******************************************************************************/
/* Programa Principal */
/*--------------------*/

//Instancio la lista de Nivel 1
$L = new Lista("CompararNivel1");

//Cargo la lista en 2 niveles
for( $i=$i<MAX $i++ )
{
    
$datoN1 = new Nivel1($i);
    for( 
$j=$j<MAX $j++ )
    {
        
$datoN2 $j $i MAX;
        
$datoN1->sublista->insertarDato($datoN2);
    }
    
$L->insertarDato($datoN1);
}

//Imprime el contenido de la lista
$cursor1 $L->primero();

echo 
"<UL>\n";
while( 
$cursor1!=$L->fin() )
{
    
$datoN1 $L->getDato($cursor1);
    echo 
"  <LI>".$datoN1->clave."\n";
    echo 
"    <UL>\n";

    
$cursor2 $datoN1->sublista->primero();
    while( 
$cursor2!=$datoN1->sublista->fin() )
    {
        
$datoN2 $datoN1->sublista->getDato($cursor2);
        echo 
"      <LI>".$datoN2."</LI> \n";
        
$cursor2 =& $datoN1->sublista->siguiente($cursor2);
    }

    echo 
"    </UL>\n";
    echo 
"  </LI>\n";

    
$cursor1 =& $L->siguiente($cursor1);
}
echo 
"</UL>\n";

//Destruyo la lista
$L->destruir();
?>