Professional Documents
Culture Documents
Aed2 t6 Bolaños Atalaya Romer
Aed2 t6 Bolaños Atalaya Romer
INGENIERÍA
INGENIERIA DE SISTEMAS
1) PARTE 1:
1) Hacer un menú que realice las siguientes tareas
[1] Mostrar lista
[2] Insertar elemento
[3] Modificar elemento
[4] Eliminar elemento
[5] Ordenar lista
[6] Insertar en orden
[7] Limpiar lista
[8] salir
Rpta:
package listasEnlazadas;
import java.util.Scanner;
public class appListaEnlazada {
static Scanner sc = new Scanner(System.in);
static int opcion = 0;
static boolean bandera = false;
public static void main(String[] args) {
ListaEnlazada lista = new ListaEnlazada();
do {
opcion = menu();
switch (opcion){
case 1:
lista.mostrarLista();
break;
case 2:
insertarElemento(lista);
break;
case 3:
modificarElemento(lista);
break;
case 4:
eliminarElemento(lista);
break;
case 5:
lista.ordenar();
System.out.println("Lista ordenada");
break;
case 6:
insertarOrdenado(lista);
break;
case 7:
lista.eliminarLista();
System.out.println("\nLista vacía\n");
break;
case 8:
break;
default:
System.out.println("Opción invalida\n");
break;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
}
}while(opcion!=8);
}
public static void insertarOrdenado(ListaEnlazada lista){
System.out.print("Cantidad de elementos: ");
int n = sc.nextInt();
for (int i = 0;i< n; i++){
System.out.print("Dato ["+(i+1)+"]: ");
int dato = sc.nextInt();
lista.insertaDato(dato);
}
}
private static void eliminarElemento(ListaEnlazada lista) {
System.out.println();
do {
opcion = subMenu2();
switch (opcion){
case 1:
eliminarInicio(lista);
break;
case 2:
eliminarFin(lista);
break;
case 3:
eliminarPos(lista);
break;
case 4:
System.out.println("Regresando...\n");
break;
default:
System.out.println("Opción invalida\n");
break;
}
}while(opcion != 4);
}
public static int subMenu2(){
do {
try {
System.out.println("\n\t***SUBMENÚ DE
OPCIONES");
System.out.println("[1] Eliminar al inicio");
System.out.println("[2] Eliminar al final");
System.out.println("[3] Eliminar en cualquier
posición");
System.out.println("[4] Regresar");
System.out.print("\tOpción: ");
opcion = sc.nextInt();
}catch (Exception e){
System.out.println("Error");
char o = sc.next().charAt(0);
}
}while (bandera==true);
return opcion;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
}
private static void eliminarFin(ListaEnlazada lista) {
lista.eliminarFin();
}
private static void eliminarInicio(ListaEnlazada lista) {
lista.eliminaInicio();
}
private static void eliminarPos(ListaEnlazada lista) {
System.out.print("Posición a eliminar: ");
int pos = sc.nextInt();
lista.eliminaPos(pos);
}
private static void modificarElemento(ListaEnlazada lista) {
System.out.print("Valor a modificar: ");
int pos = sc.nextInt();
lista.modificarPos(pos);
}
public static void insertarElemento(ListaEnlazada lista){
System.out.println();
do {
opcion = subMenu();
switch (opcion){
case 1:
insertarInicio(lista);
break;
case 2:
insertarFin(lista);
break;
case 3:
insertarPos(lista);
break;
case 4:
System.out.println("Regresando...\n");
break;
default:
System.out.println("Opción invalida\n");
break;
}
}while(opcion != 4);
}
private static void insertarPos(ListaEnlazada lista) {
System.out.print("Posición a insertar: ");
int pos = sc.nextInt();
System.out.print("Dato: ");
int dato = sc.nextInt();
lista.insertaPos(dato,pos);
}
private static void insertarFin(ListaEnlazada lista) {
System.out.print("Dato: ");
int dato = sc.nextInt();
lista.insertarFin(dato);
}
private static void insertarInicio(ListaEnlazada lista) {
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
System.out.print("Dato: ");
int dato = sc.nextInt();
lista.insertarInicio(dato);
}
private static int subMenu() {
do {
try {
System.out.println("\n\t***SUBMENÚ DE
OPCIONES");
System.out.println("[1] Insertar al inicio");
System.out.println("[2] Insertar al final");
System.out.println("[3] Insertar en cualquier
posición");
System.out.println("[4] Regresar");
System.out.print("\tOpción: ");
opcion = sc.nextInt();
}catch (Exception e){
System.out.println("Error");
char o = sc.next().charAt(0);
}
}while (bandera==true);
return opcion;
}
public static int menu(){
do {
try {
System.out.println("\n\t***MENÚ DE
OPCIONES");
System.out.println("[1] Mostrar lista");
System.out.println("[2] Insertar elemento");
System.out.println("[3] Modificar elemento");
System.out.println("[4] Eliminar elemento");
System.out.println("[5] Ordenar lista");
System.out.println("[6] Insertar en orden");
System.out.println("[7] Limpiar lista");
System.out.println("[8] Salir");
System.out.print("\tOpción: ");
opcion = sc.nextInt();
}catch (Exception e){
System.out.println("Error");
char o = sc.next().charAt(0);
}
}while (bandera==true);
return opcion;
}
}
2) Clase ListaEnlazada
Rpta:
package listasEnlazadas;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
import java.util.Comparator;
import java.util.Scanner;
public class ListaEnlazada {
Nodo primero;
Scanner sc = new Scanner(System.in);
int size;
public ListaEnlazada() {
this.primero = null;
}
public void eliminaInicio() {
if (!estaVacia(primero)) {
primero = primero.sgt;
}
size--;
}
public void modificarPos(int dato){
Nodo nuevo = new Nodo(0);
nuevo = primero;
while(nuevo != null){
if (nuevo.dato==dato){
System.out.print("Ingrese nuevo dato: ");
nuevo.dato = sc.nextInt();
}
nuevo = nuevo.sgt;
}
}
public void insertaPos(int dato, int pos) {
Nodo nuevo = new Nodo(dato);
if (pos == 1) {
insertarInicio(dato);
} else {
Nodo anterior = primero;
for (int i = 0; anterior != null; i++) {
if (i == pos - 1) {
nuevo.sgt = anterior.sgt;
anterior.sgt = nuevo;
return;
}
anterior = anterior.sgt;
}
size++;
}
}
public int size(){
return size;
}
public void insertarFin(int dato) {
Nodo nuevo = new Nodo(dato);
if (estaVacia(primero)) {
nuevo.sgt = null;
primero = nuevo;
} else {
Nodo anterior = primero;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
return;
}
anterior = anterior.sgt;
}
size--;
}
}
private boolean estaVacia(Nodo lista) {
return lista == null;
}
public void insertarInicio(int dato) {
Nodo nuevo = new Nodo(dato);
nuevo.sgt = primero;
primero = nuevo;
size++;
}
public void mostrarLista() {
System.out.println();
Nodo temp = primero;
while (temp != null) {
System.out.print(temp.dato + "\t");
temp = temp.sgt;
}
System.out.println();
}
public void ordenar() {
if (size > 1) {
boolean cambio;
do {
Nodo actual = primero;
Nodo anterior = null;
Nodo siguiente = primero.sgt;
cambio = false;
while ( siguiente != null ) {
if (actual.getDato()>siguiente.getDato()) {
cambio = true;
if ( anterior != null ) {
Nodo sig = siguiente.sgt;
anterior.sgt = siguiente;
siguiente.sgt = actual;
actual.sgt = sig;
} else {
Nodo sig = siguiente.sgt;
primero = siguiente;
siguiente.sgt = actual;
actual.sgt = sig;
}
anterior = siguiente;
siguiente = actual.sgt;
} else {
anterior = actual;
actual = siguiente;
siguiente = siguiente.sgt;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
}
}
} while( cambio );
}
}
public Nodo getPrimero() {
return primero;
}
public boolean encontrarDato(int dato) {
Nodo aux = getPrimero();
while (aux != null) {
if (aux.getDato() == dato) {
return true;
}
aux = aux.getSgt();
}
return false;
}
public void mostrar() {
Nodo aux = getPrimero();
while (aux != null) {
System.out.println("Dato: " + aux.getDato() +
"\n");
aux = aux.getSgt();
}
}
public void setPrimero(Nodo primero) {
this.primero = primero;
}
public boolean insertaDato(int dato) {
if (!encontrarDato(dato)) {
Nodo nuevo = new Nodo(0);
nuevo.setDato(dato);
if (getPrimero() == null) {
setPrimero(nuevo);
return true;
} else {
Nodo aux = getPrimero();
if (aux.getDato() > dato) {
nuevo.setSgt(aux);
setPrimero(nuevo);
return true;
}
while (aux.getSgt() != null) {
if (aux.getSgt().getDato() > dato) {
nuevo.setSgt(aux.getSgt());
aux.setSgt(nuevo);
return true;
}
aux = aux.getSgt();
}
aux.setSgt(nuevo);
return true;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
}
} else {
System.out.println("El dato ya existe");
return false;
}
}
}
3) Clase Nodo
Rpta:
package listasEnlazadas;
public class Nodo {
int dato;
Nodo sgt;
public Nodo(int dato, Nodo sgt) {
super();
this.dato = dato;
this.sgt = sgt;
}
public Nodo(int dato) {
super();
this.dato = dato;
this.sgt = null;
}
public int getDato() {
return dato;
}
public void setDato(int dato) {
this.dato = dato;
}
public Nodo getSgt() {
return sgt;
}
public void setSgt(Nodo sgt) {
this.sgt = sgt;
}
}
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
2) PARTE 2:
1) Realizar un menú de opciones que permita realizar las siguientes tareas.
Pero en vez de un tipo int para el dato utilizaremos la clase Persona, de tal manera que permita
leer
[5] salir
package persona;
import java.util.*;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
return opcion;
}
}
2) Clase Persona
package persona;
public class Persona {
String nombre;
int edad;
public Persona(String nombre, int edad) {
super();
this.nombre = nombre;
this.edad = edad;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
@Override
public String toString() {
return "nombre: " + nombre.toUpperCase() + "\t edad: " + edad;
}
}
3) Clase Nodo
package persona;
public class Nodo {
Persona persona;
Nodo sgt;
public Nodo(Persona persona, Nodo sgt) {
super();
this.persona = persona;
this.sgt = sgt;
}
public Nodo(Persona persona) {
super();
this.persona = persona;
this.sgt = null;
}
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
4) Clase ListaEnlazada
package persona;
public class ListaEnlazada {
Nodo primero;
Persona persona;
public ListaEnlazada() {
this.primero = null;
}
public void insertaIni(Persona persona) {
Nodo nuevo = new Nodo(persona);
nuevo.sgt = primero;
primero = nuevo;
}
public void mostrarLista() {
System.out.println();
Nodo temp = primero;
while (temp != null) {
System.out.print(temp.persona + "\n");
temp = temp.sgt;
}
}
public void insertaPos(Persona persona, int pos) {
Nodo nuevo = new Nodo(persona);
if (pos == 1) {
insertaIni(persona);
} else {
Nodo anterior = primero;
for (int i = 1; anterior != null; i++) {
if (i == pos - 1) {
nuevo.sgt = anterior.sgt;
anterior.sgt = nuevo;
return;
}
anterior = anterior.sgt;
}
}
}
public void eliminaIni() {
if (!estaVacia(primero)) {
primero = primero.sgt;
}
}
public void EliminarLista() {
primero = null;
}
public void insertaFin(Persona persona) {
Nodo nuevo = new Nodo(persona);
if (estaVacia(primero)) {
nuevo.sgt = null;
primero = nuevo;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
} else {
Nodo anterior = primero;
while (anterior.sgt != null) {
anterior = anterior.sgt;
}
nuevo.sgt = null;
anterior.sgt = nuevo;
}
}
private boolean estaVacia(Nodo lista) {
return lista == null;
}
}
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
3) PARTE 3:
1) Realizar un programa java que implemente el siguiente menú haciendo uso de listas
enlazadas.
El dato dejará de ser entero y lo remplazaremos por la información de una página web (nombre
página,
información consultada). Para realizar esta tarea puede reemplazar dato por dos campos:
nombre y
[5] salir
Rpta:
package paginaWeb;
import java.util.*;
public class Web {
static Scanner sc = new Scanner(System.in);
static int op = 0;
public static void main(String[] args) {
ListaEnlazada pagina = new ListaEnlazada();
do {
op = menu(sc);
switch (op) {
case 1:
pagina.mostrarLista();
break;
case 2:
System.out.print("Ingrese la pagina web:
");
String nombre = sc.next();
System.out.print("Ingrese la informacion
buscada: ");
String informacion = sc.next();
pagina.insertaIni(new PaginaWeb(nombre,
informacion));
break;
case 3:
pagina.eliminaIni();
break;
case 4:
pagina.EliminarLista();
break;
default:
System.out.println("Opción invalida");
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
break;
}
} while (op != 5);
}
private static int menu(Scanner sc2) {
System.out.println("[1] Mostrar historial de
navegacion");
System.out.println("[2] Insertar al inicio");
System.out.println("[3] Elimine primer elemento");
System.out.println("[4] Limpiar Lista");
System.out.println("[5] Salir");
return op = sc.nextInt();
}
}
2) Clase PaginaWeb
Rpta:
package paginaWeb;
public class PaginaWeb {
String nombre, informacion;
public PaginaWeb(String nombre, String informacion) {
super();
this.nombre = nombre;
this.informacion = informacion;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getInformacion() {
return informacion;
}
public void setInformacion(String informacion) {
this.informacion = informacion;
}
@Override
public String toString() {
return "PaginaWeb: " + nombre + "\t informacion: "
+ informacion;
}
}
3) Clase ListaEnlazada
Rpta:
package paginaWeb;
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
anterior = anterior.sgt;
}
nuevo.sgt = null;
anterior.sgt = nuevo;
}
}
private boolean estaVacia(Nodo lista) {
return lista == null;
}
}
4) Clase Nodo
Rpta:
package paginaWeb;
public class Nodo {
PaginaWeb pagina;
Nodo sgt;
public Nodo(PaginaWeb pagina, Nodo sgt) {
super();
this.pagina = pagina;
this.sgt = sgt;
}
public Nodo(PaginaWeb pagina) {
super();
this.pagina = pagina;
this.sgt = null;
}
}
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA
_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA