Diferencia entre revisiones de «Listas (Informática)»

m (Texto reemplazado: «<div align="justify">» por «»)
 
(No se muestran 5 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
{{Normalizar}}
 
 
{{Definición
 
{{Definición
 
|nombre= Listas  
 
|nombre= Listas  
|imagen=
+
|imagen=Listas.jpg‎
 
|tamaño=
 
|tamaño=
 
|concepto=Una lista es una colección de elementos homogéneos entre los que existe una relación lineal.
 
|concepto=Una lista es una colección de elementos homogéneos entre los que existe una relación lineal.
1. Cada elemento de la lista, a excepción del primero, tiene un único predecesor.<br>
+
}}
2. Cada elemento de la lista, a excepción del último, tiene un único sucesor.
 
Las listas no son arreglos (arrayas), 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.
 
}}Una lista es una colección de elementos homogéneos entre los que existe una relación lineal.<br>1. Cada elemento de la lista, a excepción del primero, tiene un único predecesor.<br>2. Cada elemento de la lista, a excepción del último, tiene un único sucesor.<br>Las listas no son arreglos (arrayas), 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.<br>En una lista enlazada, cada elemento apunta al siguiente excepto el último que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace al siguiente elemento. Los elementos de una lista, suelen recibir también el nombre de [[Nodos]] de la lista.
 
  
<br>  
+
'''Listas (Informática).''' Una lista es una colección de elementos homogéneos entre los que existe una relación lineal.<br>1. Cada elemento de la lista, a excepción del primero, tiene un único predecesor.<br>2. Cada elemento de la lista, a excepción del último, tiene un único sucesor.
 +
==Listas. Definición==
 +
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.<br>En una lista enlazada, cada elemento apunta al siguiente excepto el último que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace al siguiente elemento. Los elementos de una lista, suelen recibir también el nombre de Nodos de la lista.
  
=== Tipos de listas<br>  ===
+
==Tipos de listas ==
 +
===Listas simples===
 +
Se definen como un conjunto de nodos uno detrás de otro, del cual siempre se puede conocer al nodo inicial y al final, de cada nodo de la lista, se conoce un contenido, que es la información que almacena dentro puede ser de cualquier tipo de dato un sucesor único excepto el ultimo nodo de la lista.
  
==== Listas simples<br>  ====
+
'''Operaciones de las listas simples'''
 
+
*Creación de una lista
Se definen como un conjunto de nodos uno detrás de otro, del cual siempre se puede conocer al nodo inicial y al final, de cada nodo de la lista, se conoce un contenido, que es la información que almacena dentro puede ser de cualquier tipo de dato un sucesor único excepto el ultimo nodo de la lista.<br>
 
 
 
===== Operaciones de las listas simples<br>  =====
 
 
 
====== Creación de una lista<br>  ======
 
 
<pre>crearLista (nombreLista) </pre>  
 
<pre>crearLista (nombreLista) </pre>  
====== Comprobación del estado<br>  ======
+
*Comprobación del estado
 
<pre>listaVacia(nombreLista) → Booleano
 
<pre>listaVacia(nombreLista) → Booleano
 
listaVacia(referenciaNodo) → Booleano
 
listaVacia(referenciaNodo) → Booleano
 
listaLlena(nombreLista) → Booleano </pre>  
 
listaLlena(nombreLista) → Booleano </pre>  
====== Inserción de nodos<br>  ======
+
*Inserción de nodos
<pre>insertar(nombreLista, valorInfo, posicion)
+
<pre>insertar(nombreLista, valorInfo, posición)
 
insertar(nombreLista, valorInfo) </pre>  
 
insertar(nombreLista, valorInfo) </pre>  
====== Borrado de nodos<br>  ======
+
*Borrado de nodos
 
<pre>borrar(nombreLista, valorInfo) </pre>  
 
<pre>borrar(nombreLista, valorInfo) </pre>  
====== Búsqueda de un nodo<br>  ======
+
*Búsqueda de un nodo
 
<pre>buscar(nombreLista, dato)→información
 
<pre>buscar(nombreLista, dato)→información
 
buscar(nombreLista, dato)→referenciaNodo
 
buscar(nombreLista, dato)→referenciaNodo
 
pertenece(nombreLista,informacion) → Booleano </pre>  
 
pertenece(nombreLista,informacion) → Booleano </pre>  
====== Recorrido de la lista<br>  ======
+
*Recorrido de la lista
 
<pre>recorrer(nombreLista) </pre>  
 
<pre>recorrer(nombreLista) </pre>  
====== Acceso a los nodos<br>  ======
+
*Acceso a los nodos
 
<pre>info(referenciaNodo) → Informacion
 
<pre>info(referenciaNodo) → Informacion
 
siguiente(referenciaNodo) → enlace </pre>  
 
siguiente(referenciaNodo) → enlace </pre>  
====== Modificación de nodos<br>  ======
+
*Modificación de nodos
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
asignarEnlace(referenciaNodo, valorEnlace) </pre>  
 
asignarEnlace(referenciaNodo, valorEnlace) </pre>  
====== Acotación sobre las operaciones<br>  ======
+
*Acotación sobre las operaciones
 
 
 
ListaLlena sólo tiene sentido si lista es acotada.<br>''Acceso'' y ''modificación'' serán métodos get y put.<br>  
 
ListaLlena sólo tiene sentido si lista es acotada.<br>''Acceso'' y ''modificación'' serán métodos get y put.<br>  
  
==== Listas ordenadas<br>  ====
+
=== Listas ordenadas===
 +
Son las que la posición de cada nodo viene determinada por el valor de uno o más campos obligatorios de información del nodo denominados clave No se permite tener dos nodos con la misma clave.
  
Son las que la posición de cada nodo viene determinada por el valor de uno o más campos obligatorios de información del nodo denominados clave No se permite tener dos nodos con la misma clave.<br>
+
'''Operaciones de las listas ordenadas'''
 
+
*Creación de una lista
===== Operaciones de las listas ordenadas<br>  =====
+
<pre>crearLista (nombreLista)</pre>  
 
+
*Comprobación del estado
====== Creación de una lista<br>  ======
 
<pre>crearLista (nombreLista)
 
</pre>  
 
====== Comprobación del estado<br>  ======
 
 
<pre>listaVacia(nombreLista) → Booleano
 
<pre>listaVacia(nombreLista) → Booleano
 
listaVacia(referenciaNodo) → Booleano
 
listaVacia(referenciaNodo) → Booleano
 
listaLlena(nombreLista) → Booleano </pre>  
 
listaLlena(nombreLista) → Booleano </pre>  
====== Insesrción de nodo<br>  ======
+
*Insesrción de nodo
<pre>insertar(nombreLista, valorClave, valorInfo)
+
<pre>insertar(nombreLista, valorClave, valorInfo)</pre>  
</pre>  
+
*Borrado de nodos
====== Borrado de nodos<br>  ======
+
<pre>borrar(nombreLista, valorClave)</pre>  
<pre>borrar(nombreLista, valorClave)
+
*Búsqueda de un nodo
</pre>  
 
====== Búsqueda de un nodo<br>  ======
 
 
<pre>buscar(nombreLista, valorClave) → Informacion
 
<pre>buscar(nombreLista, valorClave) → Informacion
 
buscar(nombreLista, valorClave)→ReferenciaNodo
 
buscar(nombreLista, valorClave)→ReferenciaNodo
 
pertenece(nombreLista,valorClave) → Booleano
 
pertenece(nombreLista,valorClave) → Booleano
 
</pre>  
 
</pre>  
====== Acceso a los nodos<br>  ======
+
*Acceso a los nodos
 
<pre>clave(referenciaNodo) → Clave
 
<pre>clave(referenciaNodo) → Clave
 
info(referenciaNodo) → Informacion
 
info(referenciaNodo) → Informacion
 
siguiente(referenciaNodo) → enlace
 
siguiente(referenciaNodo) → enlace
 
</pre>  
 
</pre>  
====== Modificación de los nodos<br>  ======
+
*Modificación de los nodos
 
<pre>asignarClave(referenciaNodo, valorClave)
 
<pre>asignarClave(referenciaNodo, valorClave)
 
asignarInfo(referenciaNodo, valorInformacion)
 
asignarInfo(referenciaNodo, valorInformacion)
 
asignarEnlace(referenciaNodo, valorEnlace)  
 
asignarEnlace(referenciaNodo, valorEnlace)  
 
</pre>  
 
</pre>  
==== Pilas<br>  ====
 
  
 +
=== Pilas===
 
Colección ordenada de elementos homogéneos en la que sólo se pueden añadir y eliminar elementos por el principio de la misma cabecera siguiendo la [[Filosofía]] LIFO (Último en entrar primero en salir).<br>  
 
Colección ordenada de elementos homogéneos en la que sólo se pueden añadir y eliminar elementos por el principio de la misma cabecera siguiendo la [[Filosofía]] LIFO (Último en entrar primero en salir).<br>  
  
===== Operaciones con Pilas =====
+
'''Operaciones con Pilas'''
 
+
*Creación de pila
====== Creación de pila<br>  ======
 
 
<pre>crearPila (nombrePila) </pre>  
 
<pre>crearPila (nombrePila) </pre>  
====== Comprobación del estado<br>  ======
+
*Comprobación del estado
 
<pre>pilaVacia(nombrePila) → Booleano
 
<pre>pilaVacia(nombrePila) → Booleano
 
pilaLlena(nombrePila) → Booleano </pre>  
 
pilaLlena(nombrePila) → Booleano </pre>  
====== inserción de nodos<br>  ======
+
*Inserción de nodos
 
<pre>push(nombrePila, valorInfo) </pre>  
 
<pre>push(nombrePila, valorInfo) </pre>  
====== Extracción de nodos<br>  ======
+
*Extracción de nodos
 
<pre>pop(nombrePila) → información</pre>  
 
<pre>pop(nombrePila) → información</pre>  
====== Acceso a la cabecera<br>  ======
+
*Acceso a la cabecera
 
<pre>cabecera(nombrePila) → informacion </pre>  
 
<pre>cabecera(nombrePila) → informacion </pre>  
====== Acceso a los nodos<br>  ======
+
*Acceso a los nodos
 
<pre>info(referenciaNodo) → Informacion
 
<pre>info(referenciaNodo) → Informacion
 
siguiente(referenciaNodo) → Enlace </pre>  
 
siguiente(referenciaNodo) → Enlace </pre>  
====== Modificación de los nodos<br>  ======
+
*Modificación de los nodos
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
asignarEnlace(referenciaNodo, valorEnlace)
 
asignarEnlace(referenciaNodo, valorEnlace)
</pre>  
+
</pre>
==== Cola<br>  ====
 
  
Colección ordenada de elementos homogéneos en la que sólo se pueden añadir elementos por el final y se eliminan por el principio (frente) siguiendo la filosofía FIFO (Primero en entrar primero en salir).<br>
+
===Cola===
 +
Colección ordenada de elementos homogéneos en la que sólo se pueden añadir elementos por el final y se eliminan por el principio (frente) siguiendo la filosofía FIFO (Primero en entrar primero en salir).
  
===== Operaciones con Cola =====
+
'''Operaciones con Cola'''
 
+
*Creación de la cola
====== Creación de la cola<br>  ======
 
 
<pre>crearCola (nombreCola) </pre>  
 
<pre>crearCola (nombreCola) </pre>  
====== Comprobación del estado<br>  ======
+
*Comprobación del estado
 
<pre>ColaVacia(nombreCola) → Booleano
 
<pre>ColaVacia(nombreCola) → Booleano
 
ColaLlena(nombreCola) → Booleano </pre>  
 
ColaLlena(nombreCola) → Booleano </pre>  
====== inserción de nodos<br>  ======
+
*Inserción de nodos
 
<pre>encolar(nombreCola, valorInfo) </pre>  
 
<pre>encolar(nombreCola, valorInfo) </pre>  
====== Extracción de nodos<br>  ======
+
*Extracción de nodos
 
<pre>desencolar(nombrePila) → informacion </pre>  
 
<pre>desencolar(nombrePila) → informacion </pre>  
====== Acceso a la cabecera<br>  ======
+
*Acceso a la cabecera
 
<pre>cabecera(nombrePila) → informacion
 
<pre>cabecera(nombrePila) → informacion
 
</pre>  
 
</pre>  
====== Acceso a los nodos<br>  ======
+
*Acceso a los nodos
 
<pre>info(referenciaNodo) → Informacion
 
<pre>info(referenciaNodo) → Informacion
 
siguiente(referenciaNodo) → Enlace </pre>  
 
siguiente(referenciaNodo) → Enlace </pre>  
====== Modificación de los nodos<br>  ======
+
*Modificación de los nodos
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
asignarEnlace(referenciaNodo, valorEnlace)
 
asignarEnlace(referenciaNodo, valorEnlace)
 
</pre>  
 
</pre>  
==== Doblemente enlazadas (LDE)  ====
 
  
 +
=== Listas Doblemente enlazadas (LDE)  ===
 
Son aquellas que presentan unas relación lineal en ambos sentidos, un enlace a predecesor y antecesor en cada nodo, su recorrido puede ser en ambos sentidos y pueden ser simples u ordenadas.  
 
Son aquellas que presentan unas relación lineal en ambos sentidos, un enlace a predecesor y antecesor en cada nodo, su recorrido puede ser en ambos sentidos y pueden ser simples u ordenadas.  
  
===== Operaciones con LDE =====
+
'''Operaciones con LDE'''
 
+
*Creación de una lista  
====== Creación de una lista ======
 
 
<pre>crearLista(nombreLista)</pre>  
 
<pre>crearLista(nombreLista)</pre>  
====== Comprobación del estado  ======
+
*Comprobación del estado   
 
<pre>listaVacia(nombreLista) → Booleano
 
<pre>listaVacia(nombreLista) → Booleano
 
listaVacia(referenciaNodo) → Booleano
 
listaVacia(referenciaNodo) → Booleano
 
listaLlena(nombreLista) → Booleano </pre>  
 
listaLlena(nombreLista) → Booleano </pre>  
====== Inserción de nodos<br>  ======
+
*Inserción de nodos
<pre>insertar(nombreLista, valorInfo, posicion)
+
<pre>insertar(nombreLista, valorInfo, posición)
 
insertar(nombreLista, valorInfo) </pre>  
 
insertar(nombreLista, valorInfo) </pre>  
====== Borrado de nodos<br>  ======
+
*Borrado de nodos
 
<pre>borrar(nombreLista, valorInfo)</pre>  
 
<pre>borrar(nombreLista, valorInfo)</pre>  
====== Búsqueda de un nodo  ======
+
*Búsqueda de un nodo   
 
<pre>buscar(nombreLista, dato) → informacion
 
<pre>buscar(nombreLista, dato) → informacion
 
buscar(nombreLista, dato) → referenciaNodo
 
buscar(nombreLista, dato) → referenciaNodo
 
pertenece(nombreLista,informacion) → Booleano </pre>  
 
pertenece(nombreLista,informacion) → Booleano </pre>  
====== Recorrido de la lista<br>  ======
+
*Recorrido de la lista
 
<pre>recorrer(nombreLista, sentido)</pre>  
 
<pre>recorrer(nombreLista, sentido)</pre>  
====== Acceso a los nodos<br>  ======
+
*Acceso a los nodos
 
<pre>info(referenciaNodo) → Informacion
 
<pre>info(referenciaNodo) → Informacion
 
anterior(referenciaNodo) → enlace
 
anterior(referenciaNodo) → enlace
 
siguiente(referenciaNodo) → enlace </pre>  
 
siguiente(referenciaNodo) → enlace </pre>  
====== Modificación de los nodos<br>  ======
+
*Modificación de los nodos
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
<pre>asignarInfo(referenciaNodo, valorInformacion)
 
asignarAnterior(referenciaNodo, valorEnlace)
 
asignarAnterior(referenciaNodo, valorEnlace)
 
asignarSiguiente(referenciaNodo, valorEnlace)
 
asignarSiguiente(referenciaNodo, valorEnlace)
 +
</pre>
  
</pre>
 
 
==Fuente ==
 
==Fuente ==
 
[http://www.cav.jovenclub.cu Portal de los Joven Club en Ciego de Ávila]
 
[http://www.cav.jovenclub.cu Portal de los Joven Club en Ciego de Ávila]
  
 
=== Enlaces externos ===
 
=== Enlaces externos ===
[http://c.conclase.net/edd/index.php?cap=000#inicio Estrcturas de datos]<br>
+
*[http://c.conclase.net/edd/index.php?cap=000#inicio Estructuras de datos]<br>
[http://www.calcifer.org/documentos/librognome/glib-lists-queues.html Estructutas de datos. Listas enlazadas, pilas y colas]
+
*[http://www.calcifer.org/documentos/librognome/glib-lists-queues.html Estructuras de datos. Listas enlazadas, pilas y colas]
 
<br>  
 
<br>  
  
 
[[Category:Programación]]
 
[[Category:Programación]]

última versión al 20:29 14 ago 2019

Listas
Información sobre la plantilla
Listas.jpg
Concepto:Una lista es una colección de elementos homogéneos entre los que existe una relación lineal.

Listas (Informática). Una lista es una colección de elementos homogéneos entre los que existe una relación lineal.
1. Cada elemento de la lista, a excepción del primero, tiene un único predecesor.
2. Cada elemento de la lista, a excepción del último, tiene un único sucesor.

Listas. Definición

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.
En una lista enlazada, cada elemento apunta al siguiente excepto el último que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace al siguiente elemento. Los elementos de una lista, suelen recibir también el nombre de Nodos de la lista.

Tipos de listas

Listas simples

Se definen como un conjunto de nodos uno detrás de otro, del cual siempre se puede conocer al nodo inicial y al final, de cada nodo de la lista, se conoce un contenido, que es la información que almacena dentro puede ser de cualquier tipo de dato un sucesor único excepto el ultimo nodo de la lista.

Operaciones de las listas simples

  • Creación de una lista
crearLista (nombreLista) 
  • Comprobación del estado
listaVacia(nombreLista) → Booleano
listaVacia(referenciaNodo) → Booleano
listaLlena(nombreLista) → Booleano 
  • Inserción de nodos
insertar(nombreLista, valorInfo, posición)
insertar(nombreLista, valorInfo) 
  • Borrado de nodos
borrar(nombreLista, valorInfo) 
  • Búsqueda de un nodo
buscar(nombreLista, dato)→información
buscar(nombreLista, dato)→referenciaNodo
pertenece(nombreLista,informacion) → Booleano 
  • Recorrido de la lista
recorrer(nombreLista) 
  • Acceso a los nodos
info(referenciaNodo) → Informacion
siguiente(referenciaNodo) → enlace 
  • Modificación de nodos
asignarInfo(referenciaNodo, valorInformacion)
asignarEnlace(referenciaNodo, valorEnlace) 
  • Acotación sobre las operaciones

ListaLlena sólo tiene sentido si lista es acotada.
Acceso y modificación serán métodos get y put.

Listas ordenadas

Son las que la posición de cada nodo viene determinada por el valor de uno o más campos obligatorios de información del nodo denominados clave No se permite tener dos nodos con la misma clave.

Operaciones de las listas ordenadas

  • Creación de una lista
crearLista (nombreLista)
  • Comprobación del estado
listaVacia(nombreLista) → Booleano
listaVacia(referenciaNodo) → Booleano
listaLlena(nombreLista) → Booleano 
  • Insesrción de nodo
insertar(nombreLista, valorClave, valorInfo)
  • Borrado de nodos
borrar(nombreLista, valorClave)
  • Búsqueda de un nodo
buscar(nombreLista, valorClave) → Informacion
buscar(nombreLista, valorClave)→ReferenciaNodo
pertenece(nombreLista,valorClave) → Booleano
  • Acceso a los nodos
clave(referenciaNodo) → Clave
info(referenciaNodo) → Informacion
siguiente(referenciaNodo) → enlace
  • Modificación de los nodos
asignarClave(referenciaNodo, valorClave)
asignarInfo(referenciaNodo, valorInformacion)
asignarEnlace(referenciaNodo, valorEnlace) 

Pilas

Colección ordenada de elementos homogéneos en la que sólo se pueden añadir y eliminar elementos por el principio de la misma cabecera siguiendo la Filosofía LIFO (Último en entrar primero en salir).

Operaciones con Pilas

  • Creación de pila
crearPila (nombrePila) 
  • Comprobación del estado
pilaVacia(nombrePila) → Booleano
pilaLlena(nombrePila) → Booleano 
  • Inserción de nodos
push(nombrePila, valorInfo) 
  • Extracción de nodos
pop(nombrePila) → información
  • Acceso a la cabecera
cabecera(nombrePila) → informacion 
  • Acceso a los nodos
info(referenciaNodo) → Informacion
siguiente(referenciaNodo) → Enlace 
  • Modificación de los nodos
asignarInfo(referenciaNodo, valorInformacion)
asignarEnlace(referenciaNodo, valorEnlace)

Cola

Colección ordenada de elementos homogéneos en la que sólo se pueden añadir elementos por el final y se eliminan por el principio (frente) siguiendo la filosofía FIFO (Primero en entrar primero en salir).

Operaciones con Cola

  • Creación de la cola
crearCola (nombreCola) 
  • Comprobación del estado
ColaVacia(nombreCola) → Booleano
ColaLlena(nombreCola) → Booleano 
  • Inserción de nodos
encolar(nombreCola, valorInfo) 
  • Extracción de nodos
desencolar(nombrePila) → informacion 
  • Acceso a la cabecera
cabecera(nombrePila) → informacion
  • Acceso a los nodos
info(referenciaNodo) → Informacion
siguiente(referenciaNodo) → Enlace 
  • Modificación de los nodos
asignarInfo(referenciaNodo, valorInformacion)
asignarEnlace(referenciaNodo, valorEnlace)

Listas Doblemente enlazadas (LDE)

Son aquellas que presentan unas relación lineal en ambos sentidos, un enlace a predecesor y antecesor en cada nodo, su recorrido puede ser en ambos sentidos y pueden ser simples u ordenadas.

Operaciones con LDE

  • Creación de una lista
crearLista(nombreLista)
  • Comprobación del estado
listaVacia(nombreLista) → Booleano
listaVacia(referenciaNodo) → Booleano
listaLlena(nombreLista) → Booleano 
  • Inserción de nodos
insertar(nombreLista, valorInfo, posición)
insertar(nombreLista, valorInfo) 
  • Borrado de nodos
borrar(nombreLista, valorInfo)
  • Búsqueda de un nodo
buscar(nombreLista, dato) → informacion
buscar(nombreLista, dato) → referenciaNodo
pertenece(nombreLista,informacion) → Booleano 
  • Recorrido de la lista
recorrer(nombreLista, sentido)
  • Acceso a los nodos
info(referenciaNodo) → Informacion
anterior(referenciaNodo) → enlace
siguiente(referenciaNodo) → enlace 
  • Modificación de los nodos
asignarInfo(referenciaNodo, valorInformacion)
asignarAnterior(referenciaNodo, valorEnlace)
asignarSiguiente(referenciaNodo, valorEnlace)

Fuente

Portal de los Joven Club en Ciego de Ávila

Enlaces externos