Académique Documents
Professionnel Documents
Culture Documents
Estructura de datos
Instituto IACC
05 de octubre de 2018
Desarrollo
1) Realice un ejemplo de cola en PHP que almacene solo números enteros. Esta debe tener
una longitud máxima de 40 elementos y debe contener inicialmente un mínimo de 20, para
R.-
<?php
class cola {
// variable $cola que contiene el arreglo tipo cola
private $cola = array();
//funcion void para crear la cola
public function __construct(){
$this->cola = array();
}
//funcion que deja vacia la cola
public function vaciar()
{
$this->cola = array();
}
//funcion que extrae el elemento del frente de la cola
public function desencolar()
{
return array_shift($this->cola);
}
//funcion que inserta el elemento al final de la cola
public function encolar($elemento)
{
$this->cola[] = $elemento;
}
//Devuelve el tamano de la cola
public function length()
{
return count($this->cola);
}
//Imprime el elemento ubicado en el frente de la cola pero sin removerlo
public function peek()
{
return current($this->cola);
}
}
//Creamos la nueva cola
$cola = new cola();
$longitud = 40;
//Se insertan los elementos dentro de la cola
$cola->encolar('1');
$cola->encolar('2');
$cola->encolar('3');
$cola->encolar('4');
$cola->encolar('5');
$cola->encolar('6');
$cola->encolar('7');
$cola->encolar('8');
$cola->encolar('9');
$cola->encolar('10');
$cola->encolar('11');
$cola->encolar('12');
$cola->encolar('13');
$cola->encolar('14');
$cola->encolar('15');
$cola->encolar('16');
$cola->encolar('17');
$cola->encolar('18');
$cola->encolar('19');
$cola->encolar('20');
var_dump($cola);
//se imprime el elemento al frente de la cola
echo "El elemento al frente de la cola es: ".$cola->peek().".<br><br>";
//Se imprime el tamaño de la cola luego de insertar los elementos
echo "La cola contiene: ".$cola->length()." elementos.<br><br>";
Ejecución en PhpDesigner;
Verificación de pares;
$num=1;
while ($num<=20) {
if( ( $num % 2 ) != 0 ) {
print $num;
}
if ($num<=19) {
print "-";
}
$num++;
}
Ejecución en PhpDesigner;
Inserción de pares;
//vaciamos la cola
$cola->vaciar();
//agregamos los numeros pares
$cola->encolar(2);
$cola->encolar(4);
$cola->encolar(6);
$cola->encolar(8);
$cola->encolar(10);
$cola->encolar(12);
$cola->encolar(14);
$cola->encolar(16);
$cola->encolar(18);
$cola->encolar(20);
var_dump($cola);
//se imprime el elemento al frente de la cola
echo "El elemento al frente de la cola es: ".$cola->peek().".<br><br>";
//Se imprime el tamaño de la cola luego de insertar los elementos
echo "La cola contiene: ".$cola->length()." elementos.<br><br>";
Ejecución en PhpDesigner;
a) Elimine 5 elementos y realice un ciclo que imprima los elementos restantes de la cola.
b) Intente insertar 15 elementos más. ¿Qué pasa al intentar insertar estos 15 elementos?
Comente brevemente.
//Eliminamos 5 elementos
echo "Se eliminan 5 elementos de la cola";
$cola->desencolar();
$cola->desencolar();
$cola->desencolar();
$cola->desencolar();
$cola->desencolar();
var_dump($cola);
//se imprime el elemento al frente de la cola
echo "El elemento al frente de la cola es: ".$cola->peek().".<br><br>";
//Se imprime el tamaño de la cola luego de insertar los elementos
echo "La cola contiene ahora: ".$cola->length()." elementos.<br><br>";
Ejecución en PhpDesigner;
$cola->encolar('21');
$cola->encolar('22');
$cola->encolar('23');
$cola->encolar('24');
$cola->encolar('25');
$cola->encolar('26');
$cola->encolar('27');
$cola->encolar('28');
$cola->encolar('29');
$cola->encolar('30');
$cola->encolar('31');
$cola->encolar('32');
$cola->encolar('33');
$cola->encolar('34');
$cola->encolar('35');
var_dump($cola);
***Al agregar los 15 nuevos elementos, estos quedaron después de los elementos que se
agregaron en un principio demostrando así su característica FIFO.
Vaciado final de la cola;
$cola->vaciar();
var_dump($cola);
Ejecución en PhpDesigner;
Bibliografía