Estructura de datos Angelo José Zamorano Rivera Análisis de algoritmos Instituto IACC 29 de enero de 2018
Listas
Una lista es un conjunto de nodos enlazados, que forman una cadena. En el caso de las listas es posible implementarlas utilizando otras estructuras de datos, en este caso se pude implementar listas a través de arreglos. El primero nodo de una lista comienza en 0 y no en 1.
Pilas
En la vida diaria cuando agregamos elementos sobre la superficie de un elemento anterior, este proceso se llama apilar, un ejemplo claro es cuando apilamos cajas una sobre otra. Las pilas pueden implementarse utilizando arreglos.
Las pilas trabajan con memorias del tipo LIFO que significa Last In, First Out, es decir, lo último en entrar es lo primero en salir. Las pilas contienen las siguientes operaciones:
Count: cantidad de ítems existentes en la pila.
Print: imprime los ítems existentes.
Push: permite agregar elementos en la parte superior del último ítem.
Pop: saca de la pila el primer elemento.
IsEmpty: valor booleano que indica si la pila está vacía con true o false.
Peek: retorna el valor del primer elemento de la pila.
Colas
Al igual que las colas que realizan las personas para esperar su turno de atención, las estructuras de datos llamadas colas usan memoria del tipo FIFO que significa en ingles First In, First Out es decir, lo primero en entrar es lo primero en salir. Las colas pueden implementarse utilizando arreglos.
Count: cantidad de ítems existentes en la cola.
Print: imprime los ítems existentes.
Add: permite agregar elementos en la parte final de la cola.
Remove: saca de la cola el primer elemento.
IsEmpty: valor booleano que indica si la cola está vacía con true o false.
A continuación, se adjunta el código en lenguaje PHP para crear una pila, adicionar elementos en este caso marcas de vehículos con la operación Push, luego utilizamos una función donde se muestra la operación Count de forma eficiente, para obtener la cantidad de marcas agregadas en la pila.
Pila = array(); // tratar pila como arreglo. } public function push($elemento){ $this->Pila[] = $elemento; // agregar parametro a pila. echo '- Marca ' . $elemento .' agregada a pila.
'; } public function contador(){ return count($this->Pila); // contar elementos en pila. } } // instancia a clase Pila. $objMarcas = new Pila();
// ingreso de marcas a pila. $objMarcas->push('Chevrolet'); $objMarcas->push('Ford'); $objMarcas->push('Dodge'); // obtener cantidad de elementos ingresados. echo '
Cantidad de elementos en pila: '. $objMarcas->contador() .'
'; ?>
Bibliografía
IACC (2016). Estructuras de datos. Análisis de Algoritmos. Semana 1.