You are on page 1of 27

FACULTAD DE

INGENIERÍA
INGENIERIA DE SISTEMAS

ARRIBASPLATA HERNANDEZ DIOMEDES


FACULTAD DE INGENIERÍA

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

while (anterior.sgt != null) {


anterior = anterior.sgt;
}
nuevo.sgt = null;
anterior.sgt = nuevo;
}
size++;
}
public void eliminarFin(){
if (!estaVacia(primero)){
if (primero.sgt==null){
eliminaInicio();
}else{
Nodo anterior = primero;
while (anterior.sgt.sgt!=null){
anterior = anterior.sgt;
}
anterior.sgt = null;
}
size--;
}
}
public void eliminarLista(){
primero = null;
}
public void eliminaFin(){
if (!estaVacia(primero)){
if (primero.sgt == null){
eliminaInicio();
}else{
Nodo anterior = null;
Nodo p = primero;
while (p.sgt!=null){
anterior = p;
p=p.sgt;
}
anterior.sgt = p.sgt;
p = null;
}
}
size--;
}
public void eliminaPos(int pos){
if(pos==1){
eliminaInicio();
}else{
Nodo anterior = primero;
Nodo p = null;
for (int i = 1; anterior.sgt != null ; i++) {
if (i == pos - 1){
//elimina
p = anterior.sgt;
anterior.sgt = p.sgt;

_____________________________________________________
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;
}
}

4) Ejecución del programa

_____________________________________________________
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

manipular los datos de una persona (nombre, edad).

[1] Mostrar listado

[2] Insertar al final de la lista

[3] Eliminar al inicio

[4] Limpiar lista

[5] salir

package persona;
import java.util.*;

_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA
FACULTAD DE INGENIERÍA

public class Prueba01 {


static int opcion = 0;
static boolean bandera = false;
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
ListaEnlazada lista=new ListaEnlazada();
do {
opcion=menu();
switch (opcion) {
case 1:
System.out.println("\t***LISTA DE PERSONAS***");
lista.mostrarLista();
break;
case 2:
System.out.println("\n\tInsertar al final");
System.out.print("Nombre: ");
String nombre=sc.next();
System.out.print("Edad: ");
int edad=sc.nextInt();
lista.insertaFin(new Persona(nombre,edad));;
break;
case 3:
System.out.println("\nEliminado el primero");
lista.eliminaIni();
break;
case 4:
System.out.println("\nLista vacía");
lista.EliminarLista();
break;
case 5:
System.out.println("Saliendo...");
break;
default:
System.out.println("Opción incorrecta");
break;
}
}while(opcion !=5);
}
private static int menu() {
do {
try {
System.out.println("\t***MENÚ DE OPCIONES***");
System.out.println("[1] Mostrar listado");
System.out.println("[2] Insertar al final de la lista");
System.out.println("[3] Eliminar al inicio");
System.out.println("[4] Limpiar lista");
System.out.println("[5] Salir");
System.out.print("Opción: ");
opcion =sc.nextInt();
}catch (Exception e){
System.out.println("Error");
}
}while(bandera==true);

_____________________________________________________
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;
}
}

5) Ejecución del programa

_____________________________________________________
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

capital o de lo contrario por la clase País.

[1] Mostrar historial de navegación

[2] Insertar al inicio

[3] Elimine primer elemento

[4] Limpiar lista

[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

public class ListaEnlazada {


Nodo primero;
PaginaWeb pagina;
public ListaEnlazada() {
this.primero = null;
}
public void insertaIni(PaginaWeb pagina) {
Nodo nuevo = new Nodo(pagina);
nuevo.sgt = primero;
primero = nuevo;
}
public void mostrarLista() {
System.out.println();
Nodo temp = primero;
while (temp != null) {
System.out.print(temp.pagina + "\n");
temp = temp.sgt;
}
}
/*
public void insertaPos(Pais pais, int pos) {
Nodo nuevo = new Nodo(pagina);
if (pos == 1) {
insertaIni(pagina);
} 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(PaginaWeb pagina) {
Nodo nuevo = new Nodo(pagina);
if (estaVacia(primero)) {
nuevo.sgt = null;
primero = nuevo;
} else {
Nodo anterior = primero;
while (anterior.sgt != null) {

_____________________________________________________
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

5) Ejecución del programa

_____________________________________________________
INGENIERÍA DE SISTEMAS – CAJAMARCA

You might also like