1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
I.U.T. “Antonio José de Sucre”
Extensión Barquisimeto – San Cono
Autor:
Luis Angel Guarata Llovera
C.I:
31.332.901
Profesor(a):
Prof. Naudy Del Valle Albornoz
2. Concepto de listas en Programación.
- Las listas, como otras estructuras en programación, también nos permiten
almacenar múltiples datos. Es el caso de variables como ENTRADA y SALIDA,
que son -y siempre han sido- ¡listas! Las listas no son arreglos (arrays), aunque
ambos representan secuencias de elementos de un tipo, los arreglos tienen
longitud fija; las listas, no; es decir, las listas son flexibles y permiten cambio de
implementación.
Características de las listas.
- Las listas aprueban inserciones y eliminación de nodos en cualquier punto de la
lista en tiempo constante, pero no permiten un acceso aleatorio.
La forma más simple de estructura dinámica es la lisa abierta o vinculada.
Pueden ser implementadas en muchos Lenguajes.
Existen diferentes tipos de listas enlazadas: Listas enlazadas simples, listas
doblemente enlazadas, listas enlazadas circulares y listas enlazadas doblemente
circulares.
Tipos de listas.
Listas simples enlazadas.
- Es una lista enlazada de nodos, donde cada nodo tiene un único campo de
enlace. Una variable de referencia contiene una referencia al primer nodo, cada
nodo (excepto el último) enlaza con el nodo siguiente, y el enlace del último nodo
contiene NULL para indicar el final de la lista.
Listas doblemente enlazadas.
- Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista
enlazadas de dos vías. Cada nodo tiene dos enlaces: uno apunta al nodo anterior,
o apunta al valor NULL si es el primer nodo; y otro que apunta al nodo siguiente, o
apunta al valor NULL si es el último nodo.
3. Listas enlazadas circulares.
- En una lista enlazada circular, el primer y el último nodo están unidos juntos.
Esto se puede hacer tanto para listas enlazadas simples como para las
doblemente enlazadas. Para recorrer una lista enlazada circular podemos
empezar por cualquier nodo y seguir la lista en cualquier dirección hasta que se
regrese hasta el nodo original.
Listas enlazadas simples circulares.
- Cada nodo tiene un enlace, similar al de las listas enlazadas simples, excepto
que el siguiente nodo del último apunta al primero. Como en una lista enlazada
simple, los nuevos nodos pueden ser solo eficientemente insertados después de
uno que ya tengamos referenciado.
Listas enlazadas doblemente circulares.
- En una lista enlazada doblemente circular, cada nodo tiene dos enlaces,
similares a los de la lista doblemente enlazada, excepto que el enlace anterior del
primer nodo apunta al último y el enlace siguiente del último nodo, apunta al
primero.
Uso de las listas.
- Las listas permiten modelar diversas entidades del mundo real, por ejemplo, los
datos de los alumnos de un grupo académico, los datos del personal de una
empresa, los programas informáticos almacenados en un disco magnético, etc.
- Una lista puede implementarse en varias formas diferentes utilizando algunas
construcciones en memoria RAM, una forma es usar un arreglo de estructuras o
clases. Si consideramos coches con datos: marca, modelo, precio, y declaramos
la estructura coche {cadena marca, entero modelo, real precio, apuntador} es
posible utilizar un arreglo de estructuras coche para generar una lista.
Listas simples. Ejemplos.
- Una lista simplemente enlazada es una estructura de datos lineal, como los
arreglos, aunque a diferencia de estos, sus elementos se encuentran relacionados
4. (enlazados) por medio de punteros, mientras que en los arreglos sus elementos se
encuentran en espacios de memoria consecutivos.
- Otra ventaja es su facilidad para añadir nuevos elementos en partes intermedias
de la lista, ya que sólo es necesario cambiar el apuntador que sirve de enlace
entre el elemento anterior y el elemento siguiente al insertado; mientras que en un
arreglo, tendríamos que recolocar todos los elementos que le siguen a la posición
que queramos agregar.
Listas encuadernadas. Ejemplos.
- Una lista enlazada es una colección lineal de elementos llamados nodos. El
orden entre ellos se establece mediante punteros; direcciones o referencias a
otros nodos.
5. Listas circulares. Ejemplos.
- Una lista circular es una lista lineal en la que el último nodo a punta al primero.
Las listas circulares evitan excepciones en las operaciones que se realicen sobre
ellas. No existen casos especiales, cada nodo siempre tiene uno anterior y uno
siguiente.
Operaciones con listas. Creación, Inserción y Supresión.
- En toda estructura de datos hay dos operaciones que sobresalen por encima del
resto: Insertar y borrar. Estas dos operaciones aparecerán en toda estructura de
datos, puede que con otro nombre, o con una funcionalidad ligeramente diferente,
pero su filosofía será la misma, proporcionar unas operaciones para la
construcción de la estructura de datos.
Creación.
- Al igual que array(), no es realmente una función, es un constructor del lenguaje.
list() se utiliza para asignar una lista de variables en una sola operación.
6. Inserción.
- La operación insertar consiste en la introducción de un nuevo elemento en la
lista. En una lista no ordenada no es necesario mantener ningún orden, por lo
tanto la inserción de elementos se puede realizar en cualquier lugar de la lista, al
principio, al final, en una posición aleatoria.
- Generalmente se realiza la inserción de tal forma que la complejidad temporal
sea mínima, es decir, que sea una operación sencilla para que se realice en el
menor tiempo posible.
7. Supresión.
- La operación borrar consiste en la eliminación de la lista de un elemento
concreto. El elemento a borrar será escogido por el programador.
- La eliminación en una lista no conlleva ningún trabajo adicional más que el propio
de la eliminación del elemento en sí. Para borrar un elemento cualquiera habría
que realizar un recorrido secuencial de la lista hasta encontrar el nodo buscado y
una vez localizado reestructurar los punteros para saltarse el nodo a borrar y así
poder eliminarlo.
Realizar algoritmos para utilizar listas. (Cualquier lenguaje de programación.)
Algoritmo orientado al lenguaje de PHP.
<?php
1. Inicializa una lista vacía.
$lista = [];
2. Agrega elementos a la lista.
$lista[] = 5;
8. $lista[] = 10;
$lista[] = 3;
3. Recorre la lista y realiza una operación básica en cada
elemento (por ejemplo, multiplicación por 2).
foreach ($lista as $elemento) {
$resultado = $elemento * 2;
Echo $resultado. "<br>";
}
4. Elimina un elemento de la lista.
unset($lista[1]);
5. Imprime la lista actualizada.
foreach ($lista as $elemento) {
Echo $elemento. "<br>";
}
>?
- Con este algoritmo simple, podríamos crear una lista en PHP, agregar
elementos, aplicar una operación básica a cada elemento (en este caso,
multiplicar por 2), eliminar elementos y mostrar la lista actualizada.