Tarea 3 Algoritmo básico
de búsqueda en Java
Investigar e implementar en Java un algoritmo de
búsqueda. Se recomienda que desarrolle un programa que permita crear
un árbol binario, recorrerlo en diferente orden, y
haber búsqueda de un elemento dentro del árbol. También puede
usar otra estructura de datos.
Este programa desarrollado en el
lenguaje de programación Java cumple con los siguientes
requerimientos.
·
Crea un menú de opciones (INSERTAR, CONSULTAR,
ELIMINAR Y FINALIZAR).
·
INSERTAR: almacena el nombre de una persona en
vectores estáticos tipo String de tamaño 50.
·
CONSULTAR: Utilizando el algoritmo de búsqueda
secuencial pide el nombre y si lo encuentra imprime un mensaje de
encontrado, en caso contrario un mensaje de no localizado.
·
ELIMINAR: Utilizando el algoritmo de búsqueda
secuencial pide el nombre y si lo encuentra imprime un mensaje de
encontrado y elimina el nombre ajustando el vector para no dejar espacios en
blanco, en caso contrario un mensaje de no localizado.
·
FINALIZAR: Imprime los nombres almacenado y sale
del programa.
package
busquedasecuencial;
import
java.io.BufferedReader;
import
java.io.InputStreamReader;
public
class BusquedaSecuencial {
static BufferedReader br = null;
static String N= "";
static int n=0;
static String[] Nombre = new String[50];
public static void main (String args[]){
br = new BufferedReader(new InputStreamReader(System.in));
do{
menu();
}while(Integer.parseInt(N)!=4);
}
public static void menu(){
do{
System.out.println("Selecciona una de las opciones del menú: \n
"
+
"1- INSERTAR \n "
+
"2- CONSULTAR "
+
"\n 3- ELIMINAR \n "
+ "4- FINALIZAR");
try{
N = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
}while(!esEntero(N) || conversor(N)<=0 || conversor(N)>=5 );
switch(Integer.parseInt(N)){
case 1:
insertar();
break;
case 2:
consultar();
break;
case 3:
eliminar();
break;
case 4:
imprimir();
break;
}
}
public static void consultar(){
if(n>0){
String nombre="";
int eureka=0;
try{
System.out.println("Ingrese Nombre : ");
nombre = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
for(int i=0; i<n; i++){
if(Nombre[i].equals(nombre)){
eureka=1;
}
}
if(eureka==1){
System.out.println("Nombre
encontrado!!!!!. ");
}else{
System.out.println("Nombre
NO localizado!!!!!. ");
}
}
else{
System.out.println("No hay elementos en la lista. ");
}
}
public static boolean esEntero(String
cad) {
for(int i = 0; i<cad.length();
i++)
if(
!Character.isDigit(cad.charAt(i)) )
return false;
return true;
}
public static int conversor(String x){
int valor=0;
try{
valor= Integer.parseInt(x);
}catch(NumberFormatException e){
System.out.println("Valor
invalido");
}
return valor;
}
public static void insertar(){
if(n<50){
System.out.println("Leyendo datos de la persona: " + (n+1));
try{
System.out.println("Ingresa el nombre: ");
Nombre[n] =
br.readLine();
}catch(Exception e){
e.printStackTrace();
}
n++;
}else{
System.out.println("El vector esta lleno, elimina personas para
poder insertar");
}
}
public static void eliminar(){
String nombre="";
int encontrados=0;
if(n>0){
try{
System.out.println("Ingresa
el Nombre : ");
nombre = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
for(int i=0; i<n; i++){
if(Nombre[i].equals(nombre)){
encontrados++;
for(int j=i; j<n;
j++){
Nombre[j]=Nombre[j+1];
}
i--;
n--;
}
}
if(encontrados>0){
System.out.println("Nombre encontrado, procediendo a
eliminar!!!!!. ");
}else{
System.out.println("Nombre NO
localizado!!!!!. ");
}
}else{
System.out.println("No hay elementos a eliminar.");
}
}
public static void imprimir(){
if(n>0){
System.out.println("Nombre");
for(int i=0; i<n; i++){
System.out.print(Nombre [i] +
".");
System.out.println();
}
}
}
}
|
Erika Torres
No hay comentarios:
Publicar un comentario