UNIDAD III. LISTAS
3.1. DEFINICION DE LISTAS
• CARACTERISTICAS
• TERMINOLOGIA
3.2.TIPOS DE LISTAS
• SIMPLES
• DOBLEMENTE LIGADAS
• CIRCULARES
3.3.CONSTRUCCION Y OPERACIONES DE LISTAS
• SINTAXIS
• OPERACIONES
 INSERCION
 ELIMINACION
 ACCESO
3.1 DEFINICION DE LISTAS
Una lista enlazada es una colección lineal (es decir, una secuencia) de objetos de una
clase autorreferenciada,
conocidos como nodos, que están conectados por enlaces de referencia; es por ello
que se utiliza el término lista
“enlazada”. Por lo general, un programa accede a una lista enlazada mediante una
referencia al primer nodo en
la lista. El programa accede a cada nodo subsiguiente a través de la referencia de
enlace almacenada en el nodo
anterior. Por convención, la referencia de enlace en el último nodo de una lista se
establece en null. Los datos se
almacenan en forma dinámica en una lista enlazada; el programa crea cada nodo
según sea necesario. Un nodo
puede contener datos de cualquier tipo, incluyendo referencias a objetos de otras
clases.
REPRESENTACION GRAFICA
CARACTERISTICAS
1- La lista debe estar ordenada.
2- A diferencia de las pilas y las colas se pueden extraer e insertar
elementos en cualquier parte de la lista.
Para que esta estructura sea un TDA lista enlazada, debe tener unos
operadores asociados que permitan la manipulación de los datos que
contiene.
TERMINOLOGÍA
Asignación dinámica de memoria:
la habilidad para que un programa obtenga más espacio de memoria en tiempo
de ejecución, para almacenar nuevos nodos y para liberar el espacio que ya
no se necesita. El límite para la asignación dinámica de memoria puede ser
tan grande como la cantidad de memoria física disponible en la computadora,
o la cantidad de espacio en disco disponible en un sistema con memoria
virtual.
3.2 TIPOS DE 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.
Doblemente ligadas: 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.
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. Desde otro punto de vista, las listas
enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Este
tipo de listas es el más usado para dirigir buffers para “ingerir” datos, y para
visitar todos los nodos de una lista a partir de uno dado.
3.3 CONSTRUCCIÓN Y OPERACIONES DE LISTAS
Sintaxis: Java
Una clase auto-referenciada es una clase con al menos un campo cuyo tipo de
referencia es el nombre de la misma clase.
public clase Nodo
{
Object elemento;
Nodo siguiente;
//métodos
}
class Nodo(object): def __init__(self, dato=None, prox = None): self.dato = dato
self.prox = prox def __str__(self): return str(self.dato)
Ejecutamos este código:
>>> v3=Nodo("Bananas") >>> v2=Nodo("Peras", v3) >>> v1=Nodo("Manzanas",
v2) >>> print v1 Manzanas >>> print v2 Peras >>> print v3 Bananas
OPERACIONES
la eliminacion del primer elemento en realidad es muy sencilla ya que solamente
tenemos que recorrer un nivel abajo nuestra lista. la manera de hacerlo es
muy sencilla, pondre mi codigo y explicare.
Listas

Listas

  • 2.
    UNIDAD III. LISTAS 3.1.DEFINICION DE LISTAS • CARACTERISTICAS • TERMINOLOGIA 3.2.TIPOS DE LISTAS • SIMPLES • DOBLEMENTE LIGADAS • CIRCULARES 3.3.CONSTRUCCION Y OPERACIONES DE LISTAS • SINTAXIS • OPERACIONES  INSERCION  ELIMINACION  ACCESO
  • 3.
    3.1 DEFINICION DELISTAS Una lista enlazada es una colección lineal (es decir, una secuencia) de objetos de una clase autorreferenciada, conocidos como nodos, que están conectados por enlaces de referencia; es por ello que se utiliza el término lista “enlazada”. Por lo general, un programa accede a una lista enlazada mediante una referencia al primer nodo en la lista. El programa accede a cada nodo subsiguiente a través de la referencia de enlace almacenada en el nodo anterior. Por convención, la referencia de enlace en el último nodo de una lista se establece en null. Los datos se almacenan en forma dinámica en una lista enlazada; el programa crea cada nodo según sea necesario. Un nodo puede contener datos de cualquier tipo, incluyendo referencias a objetos de otras clases.
  • 4.
  • 5.
    CARACTERISTICAS 1- La listadebe estar ordenada. 2- A diferencia de las pilas y las colas se pueden extraer e insertar elementos en cualquier parte de la lista. Para que esta estructura sea un TDA lista enlazada, debe tener unos operadores asociados que permitan la manipulación de los datos que contiene.
  • 6.
    TERMINOLOGÍA Asignación dinámica dememoria: la habilidad para que un programa obtenga más espacio de memoria en tiempo de ejecución, para almacenar nuevos nodos y para liberar el espacio que ya no se necesita. El límite para la asignación dinámica de memoria puede ser tan grande como la cantidad de memoria física disponible en la computadora, o la cantidad de espacio en disco disponible en un sistema con memoria virtual.
  • 7.
    3.2 TIPOS DELISTAS 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. Doblemente ligadas: 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. 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. Desde otro punto de vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Este tipo de listas es el más usado para dirigir buffers para “ingerir” datos, y para visitar todos los nodos de una lista a partir de uno dado.
  • 8.
    3.3 CONSTRUCCIÓN YOPERACIONES DE LISTAS Sintaxis: Java Una clase auto-referenciada es una clase con al menos un campo cuyo tipo de referencia es el nombre de la misma clase. public clase Nodo { Object elemento; Nodo siguiente; //métodos } class Nodo(object): def __init__(self, dato=None, prox = None): self.dato = dato self.prox = prox def __str__(self): return str(self.dato) Ejecutamos este código: >>> v3=Nodo("Bananas") >>> v2=Nodo("Peras", v3) >>> v1=Nodo("Manzanas", v2) >>> print v1 Manzanas >>> print v2 Peras >>> print v3 Bananas
  • 10.
    OPERACIONES la eliminacion delprimer elemento en realidad es muy sencilla ya que solamente tenemos que recorrer un nivel abajo nuestra lista. la manera de hacerlo es muy sencilla, pondre mi codigo y explicare.