proyecto

Páginas: 17 (4217 palabras) Publicado: 6 de enero de 2016
Listas
package proyecto;
import java.awt.Color;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.Border;

// definición de la clase Lista
public class List {
ImageIcon imagen= new ImageIcon("src/flecha.png");
private Border border =BorderFactory.createLineBorder(Color.DARK_GRAY, 1);
public JLabel label[]=new JLabel[100];
private NodoLista primerNodo;
private NodoLista ultimoNodo;
//private String nombre; // cadena como “lista”, utilizada para imprimir

// construir Lista vacia con Lista como nombre
public List()
{
this( "lista" );
}

// construir una Lista vacia con un nombre
public List(String nombreLista)
{
//nombre = nombreLista;
primerNodo = ultimoNodo = null;
}

// insertar objeto Object al frente de Lista
public synchronized void insertarAlFrente( Object elementoInsertar)
{
if (estaVacia()) /* primerNodo y ultimoNodo hacen referencia al mismo
objeto Object */

primerNodo = ultimoNodo = new NodoLista( elementoInsertar);

else// primer nodo hace referencia a un nuevo nodo

primerNodo = new NodoLista( elementoInsertar, primerNodo );
}

//insertar objeto al medio de la Lista
public synchronized void insertarAlMedio(Object busca,Object nuevo)
{
if (estaVacia() ) // lanzar excepcion de Lista esta vacia
primerNodo = ultimoNodo = new NodoLista( busca);
NodoLista actual = primerNodo;while ( actual.datos.equals(busca)!=true )
{
actual = actual.siguienteNodo;
}
if( actual.datos.equals(busca)==true)
{
NodoLista nodoNuevo = new NodoLista(nuevo,actual.siguienteNodo);
actual.siguienteNodo = nodoNuevo;
// System.out.println("Elemento insertado despues de "+ busca+": " +nuevo);
}
}

// insertar objeto Object al final de Lista
public synchronizedvoid insertarAlFinal( Object elementoInsertar )
{
if (estaVacia()) /* primerNodo y ultimoNodo hacen referencia al mismo
objeto Object */
primerNodo = ultimoNodo = new NodoLista( elementoInsertar );

else /* el objeto siguienteNodo que va después de ultimoNodo Hace
referencia a un nuevo nodo */
ultimoNodo = ultimoNodo.siguienteNodo = newNodoLista(elementoInsertar);
}

// eliminar primer nodo de la Lista
public synchronized Object eliminarDelFrente() //throws ExcepcionListaVacia
{
if ( estaVacia() ) // lanzar excepcion si lista esta vacia
// throw new ExcepcionListaVacia( nombre );
JOptionPane.showMessageDialog(null, "Lista Vacia");
/* recuperar los datos que se van a eliminar*/

Object elementoEliminado =primerNodo.datos;

// actualizar las referencias primerNodo y ultimoNodo
if ( primerNodo == ultimoNodo )
primerNodo = ultimoNodo = null;
else
primerNodo = primerNodo.siguienteNodo;
return elementoEliminado; // devolver datos del nodo eliminado
} // fin del metodo eliminarDelFrente

// eliminar ultimo nodo de la Lista
public synchronized ObjecteliminarDelFinal() //throws ExcepcionListaVacia
{
if (estaVacia() ) // lanzar excepcion de Lista esta vacia
{
JOptionPane.showMessageDialog(null, "Lista Vacia");
// throw new ExcepcionListaVacia( nombre );
}

/* recuperar los datos que se van a eliminar */
Object elementoEliminado = ultimoNodo.datos;

// actualizar las referencias primerNodo yultimoNodo
if ( primerNodo == ultimoNodo )
primerNodo = ultimoNodo = null;

else { // localizar nuevo ultimo nodo
NodoLista actual = primerNodo;

// iterar mientras nodo actual no haga referencia al ultimo nodo
while ( actual.siguienteNodo != ultimoNodo )
actual = actual.siguienteNodo;

ultimoNodo = actual; // actual es el nuevo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Proyectos
  • Proyecto
  • Proyectos
  • Proyecto
  • Proyecto
  • Proyecto
  • Proyectos
  • Proyecto

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS