Вы находитесь на странице: 1из 20

FACULTAD DE CIENCIAS INFORMATICAS 1

INTEGRANTES:

PINELA HOLGUIN GENESIS DELGADO CELORIO JOAN

DOCENTE: ING. JACINTO REYES CARDENAS

CURSO: TERCERO A

FECHA: 29 DE SEPTIEMBRE DE 2013

FACULTAD DE CIENCIAS INFORMATICAS 2 INTRODUCCION

El previo ejercicio que aplicaremos en este proyecto basndonos en los manuales, tutoriales para tener un mejor entendimiento de listas simplemente enlazadas a la estructura de datos. La lista enlazada nos permite almacenar datos de una forma organizada, al igual que los vectores pero, a diferencia de estos, esta estructura es dinmica, por lo que no tenemos que saber "a priori" los elementos que puede contener con la finalidad de poder mostrar el men de tal manera que se pueda insertar o eliminar como lo desee el usuario.

FACULTAD DE CIENCIAS INFORMATICAS 3

OBJETIVOS

General

Mostrar por pantalla un men de acuerdo a como se escoja, ingresar, visualizar, eliminar los datos ingresados de tal forma que si no hay elementos o si se inserta un nmero incorrecto muestre por pantalla que la lista est vaca o que no est dentro de la lista

Especifico

Generar un cdigo de fcil acceso lgico. Sugerencias en cuanto al desarrollo adecuado


proyecto.

y completo del

FACULTAD DE CIENCIAS INFORMATICAS 4 MARCO TEORICO

Como parte de este proyecto adjunto aqu un breve concepto en cuanto a lo que es listas enlazadas que se desarrolla en el mencionado anteriormente ya que es de gran uso en varios escenarios de programacin.

Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta insercin al principio o final de la lista o bien en orden. Eliminar: elimina un nodo de la lista, puede ser segn la posicin o por el dato. Buscar: busca un elemento en la lista. Localizar: obtiene la posicin del nodo en la lista. Vaciar: borra todos los elementos de la lista

CODIGO

FACULTAD DE CIENCIAS INFORMATICAS 5 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package proyecto_lista_Pinela;

/** * * @author Paola */ import javax.swing.JOptionPane;

class CNodo {

int dato; CNodo siguiente; CNodo anterior;

public CNodo() {

FACULTAD DE CIENCIAS INFORMATICAS

anterior = null; siguiente = null; } }

class CNodoUno {

int dato; CNodoUno siguiente;

public CNodoUno() { siguiente = null; } }

class ListaSimplementeEnlazada {

CNodoUno cabeza;

public ListaSimplementeEnlazada() { cabeza = null;

FACULTAD DE CIENCIAS INFORMATICAS

public void InsertarDato(int dat) { CNodoUno NuevoNodo; CNodoUno ant = null, sig = null; NuevoNodo = new CNodoUno(); NuevoNodo.dato = dat; int ban = 0; if (cabeza == null) { cabeza = NuevoNodo; NuevoNodo.siguiente = null; } else { if (dat < cabeza.dato) { NuevoNodo.siguiente = cabeza; cabeza = NuevoNodo; } else { ant = cabeza; sig = cabeza; while (ban == 0) { ant = sig; sig = sig.siguiente;

FACULTAD DE CIENCIAS INFORMATICAS

if ((ant == null) || (sig == null)) { ban = 1; } else { if ((dat < sig.dato) && (ant.dato <= dat)) { ban = 1; } } } if (ant != null) { ant.siguiente = NuevoNodo; } NuevoNodo.siguiente = sig; } } }

public String EliminarDato(int dat) { String out = "Dato Eliminado de la Lista"; CNodoUno ant = null, sig = null; int ban = 0; if (Vacia()) {

FACULTAD DE CIENCIAS INFORMATICAS

out = "Lista esta Vaca "; } else { if (dat < cabeza.dato) { out = "Dato no se encuentra en la Lista "; } else if (dat == cabeza.dato) { cabeza = cabeza.siguiente; } else { ant = cabeza; sig = cabeza; while (ban == 0) { if ((ant.dato < dat) && (dat <= sig.dato)) { ban = 1; } else { if (dat > sig.dato) { ant = sig; sig = sig.siguiente; } else if (dat < sig.dato) { sig = ant; } if ((sig == null) || (ant == null)) { ban = 1;

FACULTAD DE CIENCIAS INFORMATICAS

} else if ((sig.dato == dat) || (ant.dato == dat)) { ban = 1; } } } if ((sig == null) || (ant == null)) { out = "Dato no se encuentra en la Lista "; } else if (dat == sig.dato) { ant.siguiente = sig.siguiente;

10

} else if (dat == ant.dato) { ant.siguiente = sig; } else { out = "Dato no se encuentra en la Lista "; } } } return out; }

public boolean Vacia() {

FACULTAD DE CIENCIAS INFORMATICAS

return (cabeza == null); }

11

public String VisualizarDatos() { String out = ""; CNodoUno Nodo; Nodo = cabeza; if (!Vacia()) { while (Nodo != null) { System.out.print(" " + Nodo.dato + " "); out += Nodo.dato + " | "; Nodo = Nodo.siguiente; } System.out.println(""); } else { System.out.print("Lista esta Vaca"); out = "Lista Vaca"; } return out; } }

FACULTAD DE CIENCIAS INFORMATICAS 12

public class Proyecto_lista_Pinela {

public static void main(String args[]) { int opt = 0; do { opt = OpcionMenuPrincipal(); switch (opt) {

case 1: ListaSimplementeEnlazada lse = new ListaSimplementeEnlazada(); int op1; do { op1 = OpcionMenuSecundario("Lista Simplemente Enlazada"); switch (op1) { case 1: int i = IngresoDato();

FACULTAD DE CIENCIAS INFORMATICAS

lse.InsertarDato(i); break; case 2: if (lse.Vacia()) {//Si esta vacia no procesa JOptionPane.showMessageDialog(null, "Lista esta vacia Vacia"); break; } int e = IngresoDato(); String msg = lse.EliminarDato(e); JOptionPane.showMessageDialog(null, msg); break; case 3: String out = lse.VisualizarDatos(); JOptionPane.showMessageDialog(null, out); break; } } while (op1 != 4); break; case 2:

13

FACULTAD DE CIENCIAS INFORMATICAS

JOptionPane.showMessageDialog(null, "Fin del Proyecto de Lista.Simplemente.Enlazada "); JOptionPane.showMessageDialog(null, "PINELA HOLGUIN GENESIS \n", "Autora", JOptionPane.INFORMATION_MESSAGE); break; } } while (opt != 2); System.out.println(opt); }

14

static int OpcionMenuPrincipal() { boolean entradaValida = false; int op = 0; while (!entradaValida) { String menuPrincipal = "1.) Lista Simplemente Enlazada\n" + "2.) Salir"; String opcion = JOptionPane.showInputDialog(null, menuPrincipal, "Seleccione una Opcion", JOptionPane.QUESTION_MESSAGE); try {

FACULTAD DE CIENCIAS INFORMATICAS

op = Integer.parseInt(opcion); if (op < 1 || op > 4) { entradaValida = false; JOptionPane.showMessageDialog(null, "POR FAVOR VERIFIQUE EL NUMERO INGRESADO"); JOptionPane.showMessageDialog(null, "Solo numeros del 1 4"); } else { break; } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Opcion Invalida"); } } return op; }

15

static int OpcionMenuSecundario(String Titulo) { boolean entradaValida = false; int op = 0; while (!entradaValida) {

FACULTAD DE CIENCIAS INFORMATICAS

String menuSecundario = "1.) Ingresar\n" + "2.) Eliminar\n" + "3.) Visualizar\n" //+ "4.) Buscar\n" + "4.) Atras"; String opcion = JOptionPane.showInputDialog(null, menuSecundario, Titulo, JOptionPane.QUESTION_MESSAGE); try { op = Integer.parseInt(opcion); if (op < 1 || op > 4) { entradaValida = false; JOptionPane.showMessageDialog(null, "Solo nmeros del 1 4"); } else { break; } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Opcion Invalida"); } }

16

FACULTAD DE CIENCIAS INFORMATICAS

return op; }

17

static int IngresoDato() { boolean entradaValida = false; int op = 0; while (!entradaValida) { String msg = "Ingrese un nmero entero"; String opcion = JOptionPane.showInputDialog(null, msg, "Ingreso de Dato", JOptionPane.QUESTION_MESSAGE); try { op = Integer.parseInt(opcion); break; } catch (Exception e) { JOptionPane.showMessageDialog(null, "Opcion Invalida"); } } return op; } }

FACULTAD DE CIENCIAS INFORMATICAS 18

FACULTAD DE CIENCIAS INFORMATICAS 19

FACULTAD DE CIENCIAS INFORMATICAS 20

CONCLUSIONES

De acuerdo a el proyecto hemos llegado a la conclusin que el desarrollo y ejecucin de esta aplicacin ayudara al usuario mostrndole de una herramienta prctica , la cual le permite el ingreso, muestra(visualiza por pantalla), y elimina los datos insertados de una lista simplemente enlazada.

Вам также может понравиться