BUENO AMIGOS DE LA CARRERA DE MECATRONICA Y A TODA LA GENTE QUE SE DIO LA OPORTUNIDAD DE LEER ESTO AQUI LES SUBO LA TAREA DE ESTA SEMANA DE PROGRAMACION QUE SON LAS LISTAS LIGADAS TERMINADOS TODOS LOS CASOS Y JALANDO A TODA MADRE BUENO JENTE DISFRUTENLO.......... Y POR FAVOR SI LO VAN A COPIAR Y PEGAR POR FAVOR DE PERDIDA COMENTEN Y AGRADESCAN QUE ME MATE HACIENDO ESTO HAHAHAHAHA NO ES CIERTO NO POR ALGO SOMOS EL #1 EN EL CONCURSO DE PROGRAMACION BASICA.
EL PRIMER ARCHIVO SE DEBE DE LLAMAR NODOLISTA Y ASI QUEDARA:
///clase (registro) que sirve para generar nodos de dos tipos de formas (2 constructores)
public class NodoLista {
// 2 campos
Object Info;
NodoLista Liga;
//PRIMER CONSTRUCTOR
public NodoLista(Object dato){
Info = dato;
Liga = null;
}
//SEGUNDO CONSTRUCTOR
public NodoLista(Object dato, NodoLista liga){
Info = dato;
this.Liga = liga; /////el this solo es para decir que la primera "liga"
} ////es global
}
ESTE ES EL ARCHIVO LLAMADO LISTA , ES DONDE SE REALIZAN LAS FUNCIONES PARA EJECUTAR LOS CONSTRUCTORES, ASI DEBE DE QUEDAR:
//// clase que manipula a los punteros para manipular los nodos en la memoria
public class Lista{
// declarar los punteros!!!
NodoLista Primero, ultimo, aux, nuevo, ant, post;
public Lista(){
Primero = ultimo = aux = nuevo = ant = post = null;
}
public void insertarAlFrente(Object dato){
if(Primero==null){// si la lista esta vacia
Primero = new NodoLista(dato);
ultimo=Primero;
}
else{////ya hay mas nodos en la lista
nuevo = new NodoLista(dato);
ultimo.Liga = nuevo;
ultimo = nuevo;
}despliegaLista();
}
public void insertarAtras(Object dato){
if(Primero==null){// si la lista esta vacia
Primero = new NodoLista(dato);
ultimo=Primero;
}
else{
nuevo = new NodoLista(dato,Primero);
Primero = nuevo;
}despliegaLista();
}
public void despliegaLista(){
aux = Primero;
System.out.println ("##########LISTA COMPLETA#########");
while (aux != null) {
System.out.println (aux.Info);
aux = aux.Liga;
}
System.out.println ("##########LISTA COMPLETA#########");
}
/////////INSERTAR ANTES DE //////////
public void insertarAntesDe(Object DatoB,Object DatoI){
if(Primero==null){
System.out.println ("lista vacia");
}
else{/////hay datos
if(buscar(DatoB)== true){
///////EMPEZAR A REALIZAR EL METODO
if(aux==Primero){///caso 1
nuevo= new NodoLista(DatoI,Primero);
Primero = nuevo;
}
else{//en caso de que no este al inicio de la lista
nuevo = new NodoLista(DatoI , aux);
ant.Liga = nuevo;
}
}
}
despliegaLista();
}
//////////////INSERTAR DESPUES DE//////////////////
public void insertarDespuesDe(Object DatoB, Object DatoI){
if(Primero==null){
System.out.println ("lista vacia");
}
else{///hay metodos
if(buscar(DatoB)== true){
//////EMPEZAR A REALIZAR EL METODO/////
if(aux==Primero){
nuevo=new NodoLista(DatoI);
Primero.Liga=nuevo;
}
else{///en caso de que no este al inicio de la lista
nuevo= new NodoLista(DatoI, aux.Liga);
aux.Liga=nuevo;
}
}
}despliegaLista();
}
///////////////METODO ELIMINAR NODO//////////////
public void eliminarNodo(Object DatoB){
if(Primero==null){
System.out.println ("lista vacia");
}
else{
if(buscar(DatoB)==true){///hacer cuatro casos
if(Primero==ultimo){//// 1 caso
Primero=ultimo=null;
}
else if(aux==Primero){
Primero=aux.Liga;
aux=null;
}
else if(aux==ultimo){
ultimo=ant;
ultimo.Liga=null;
aux=null;
}
else{
ant.Liga=aux.Liga;
aux=null;
}
}
}despliegaLista();
}
/////////////METODO PARA SUSTITUIR DATO///////////////
public void modificaLista(Object DatoB,Object DatoI){
if(Primero==null){
System.out.println ("lista vacia");
}
else{
if(buscar(DatoB)==true){
aux.Info=DatoI;
}
}despliegaLista();
}
//////////////////////////METODO BUSCAR/////////
public boolean buscar(Object DatoB){
aux = Primero;
boolean bandera = false;
while (aux != null && bandera != true) {
if(DatoB.equals(aux.Info)){// si encuentra el dato
bandera = true;
}
else{//apunta al siguiente nodo
ant = aux;
aux = aux.Liga;
post = aux.Liga;
}
}
if(bandera == true){
return true;
}
else{
System.out.println ("ese dato no existe");
return false;
}
}
}
ESO FUE EL ARCHIVO LISTA Y ESTE ES EL ARCHIVO APPLISTA , ES DONDE SE LLAMARAN A LAS FUNCIONES ASI DEBE DE QUEDAR:
import java.util.Scanner;
class AppLista{
public static void main(String args[]){
Lista lista = new Lista();
Integer DatoB,DatoI;
int opcion;
//Inicializacion del teclado
Scanner Teclado = new Scanner(System.in);
do{
System.out.println ("1) Insertar al frente");
System.out.println ("2) Insertar al Atras");
System.out.println ("3) Insertar Antes de");
System.out.println ("4) Insertar Despues de");
System.out.println ("5) Eliminar Dato");
System.out.println ("6) Modificar Dato");
System.out.println ("7) DesplegarLista");
System.out.println ("8) Salir");
opcion = Teclado.nextInt();
switch (opcion) {
case 1: System.out.println ("Que dato quieres insertar al frente de la Lista: ");
DatoI = new Integer(Teclado.nextInt());
lista.insertarAlFrente(DatoI);
break;
case 2: System.out.println ("Que dato quieres insertar Atras de la Lista: ");
DatoI = new Integer(Teclado.nextInt());
lista.insertarAtras(DatoI);
break;
case 3: System.out.println ("Que dato quieres insertar Antes de la Lista: ");
DatoI = new Integer(Teclado.nextInt());
System.out.println ("Atras de que dato quieres insertar el :"+DatoI);
DatoB = new Integer(Teclado.nextInt());
lista.insertarAntesDe(DatoB,DatoI);
break;
case 4: System.out.println ("Que dato quieres insertar Despues de la Lista: ");
DatoI = new Integer(Teclado.nextInt());
System.out.println ("Despues de que dato quieres insertar el :"+DatoI);
DatoB = new Integer(Teclado.nextInt());
lista.insertarDespuesDe(DatoB,DatoI);
break;
case 5: System.out.println ("Que dato quieres ELiminar de la Lista: ");
DatoB = new Integer(Teclado.nextInt());
lista.eliminarNodo(DatoB);
break;
case 6: System.out.println ("Que dato quieres buscar para sustituir: ");
DatoB = new Integer(Teclado.nextInt());
System.out.println ("Que dato quieres poner en el numero "+DatoB+":");
DatoI = new Integer(Teclado.nextInt());
lista.modificaLista(DatoB,DatoI);
break;
case 7: lista.despliegaLista();
break;
case 8: System.out.println ("\tbye...\n");
break;
default :System.out.println ("\topcion no valida intenta de nuevo\n");
}
}while (opcion != 8);
}
}
ESO ES TODO COMPAÑEROS ASI QUE NO SEAN CABRAS Y COMENTEN DE PERDIDA PARA AGRADESER CABRONES!!!...
El éxito sólo se logra rompiéndote la madre,de otra manera serías un suertudo no una persona exitosa, Tener éxito en la vida no es llegar a tener fama,sino a realizar aquello que realmente deseas,Una persona no vale por sus éxitos, sino de las veces que se ha levantado de sus fracasos,Lo difícil no es tener éxito, lo difícil es conservarlo, La mejor venganza es el éxito, La fuerza de tu envidia es la rapidez de mi progreso.
Suscribirse a:
Enviar comentarios (Atom)
no es que diga que estes mal o algo asi pero te podrias ahorrar todo con estas dos simples lineas:
ResponderEliminarpublic void modificaLista(Object DatoB, Object DatoI){
if(buscar(DatoB)==true)
Aux.Info=DatoI;
}
y de hecho si esta mal porque nada mas tienes que sustituir el valor y tu estas creando uno nuevo
ResponderEliminaresta chido mi chava pues asi ya nos evitaste trabajar mas, lo estoy revisando bien pero esta chido, ya me voy a poner mas al tiro porque le he guevoneado en esto de programacion
ResponderEliminarmira juan no esta mal porque al crear uno nuevo con el valor que quieres y lo sustituyes en el mismo lugar del otro, como dijo el profre para que se elimine el otro archivo, solo redireccionas todos los terminos que lo apunten a el y solo la memoria lo elimina sin tener que modificar el dato interno. pero si esta bien y tambien tu solucion es valida porque lo que haces es sustituirlo internamente sin borrarlo y yo no yo creo uno nuevo y el anterior lo borro del sistema.....
ResponderEliminarpero el programa esta bien logicamente y tambien corre perfecto no tiene fallas....
ResponderEliminarya te la sabes ramon que aqui estamos para servir voy a tratar de todas las tareas que nos dejen subirlas aqui bueno las mas importantes!!!! y gracias por tu comentario al igual que a juan
ResponderEliminarya esta mi chava chido one
ResponderEliminarde nada cabron ya te la sabes!!!
ResponderEliminarya lo correji estaba bien solo que lo mejore en dos metodos en el que me decia juan y en el de borrar.....hay quedo...
ResponderEliminaruna pregunta k hace esta parte del codigo public void modificaLista(Object DatoB,Object DatoI){
ResponderEliminarif(Primero==null){
System.out.println ("lista vacia");
}
else{
if(buscar(DatoB)==true){
aux.Info=DatoI;
}
}despliegaLista(); esta es la parte ala k me refiero por k no poner un system.out.println o algo asi ya que veo k esta en el caso 7 pero nose k es lo k realmente hace espero me entiendan
}
hola juan carlos con respecto a tu pregunta en la parte donde dice "despliegaLista();" , esta es una funcion que se define lineas atras, lo unico que hace es imprimir la lista completa aunque como tu dices se puede quitar y poner un solo system.out.println para imprimir el dato que se modifico. solo que en este ejemplo se imprime la lista completa para ver como queda ya modificado.
ResponderEliminarpor si a caso pongo la parte del codigo que realiza la funcion despliegaLista();
public void despliegaLista(){
aux = Primero;
System.out.println ("##########LISTA COMPLETA#########");
while (aux != null) {
System.out.println (aux.Info);
aux = aux.Liga;
}
System.out.println ("##########LISTA COMPLETA#########");
}
eso es lo que realiza esa funcion como ya te comente imprime la lista completa espero y te aclare con esto tus dudas.
saludos.
Ing.José Muñiz
me sirvio de mucha ayuda! enserio gracias !!
ResponderEliminarde nada suerte.
Eliminarmuy completo pero en la opcion 4 de insertar despues de, ya no aparecen los datos que ya estaban imsertados
ResponderEliminarmuchas gracias!!!
ResponderEliminargracias...
esta chebre gracias por publicarlo
ResponderEliminaresta chebre gracias por publicarlo
ResponderEliminarMuchas Gracias
ResponderEliminarBuen Aporte
ResponderEliminarsolo sirve para variables de tipo entero? y si quiero pasarle un array completo a la lista?
ResponderEliminarhola, gracias
ResponderEliminary si quisiera agregar la opcion buscar como seria?
ResponderEliminar