Logo Revista Java

startjavaabout

articles

00. Prólogo (java)
01.a TEMAS INTRODUCTORIOS. (java)
01.b Comandos que Inician la Máquina de Java y la salida de texto (java)
01.c Descripción empírica de la Programación Orientada a Objetos con Java. (java)
01.d Herencia Soportada por Java y Tipos de Datos Básicos. (java)
01.e Operadores, Delimitadores Básicos Y los nombres de función Válidos. (java)
02.a Codificación Inicial y Estructuras de Datos. (java)
02.b Paquetes, y Palabras clave, (Reservadas) (java)
02.c Tipos de Datos, y declaraciones de funciones, Tablas. (java)
02.d Bucles y Tomas de decisión, Excepciones y Control de Errores. (java)
02.e Secuencias de Escape (java)
02.f Concatenación y Conversiones a Texto. (java)
02.g Métodos de Entrada y Salida de datos (java)
02.h Crear Objetos de la biblioteca de Java (java)
02.i Ejercicio: Entrada de Datos y Conversiones (if, try, catch) (java)
02.j Ejercicios, usando excepciones y while, y switch (java)
02.k Práctica complementaria Resuelta sin Arreglos. (java)
02.l Ejercicios de la práctica complementaria (java)
02.m Práctica complementaria resuelta Ej 6 y 7 (java)
02.m Práctica complementaria resuelta Ej 8 y 9 (java)
03.a Métodos estáticos y mecanismos de programación (java)
03.b Arreglos (Arrays o Vectores) (java)
03.c La clase Math como ayudante para resolver problemas (java)
03.d Usando arreglos para un buffer, colas de espera, pilas y listas. (java)
03.e Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir) (java)
03.f Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir) 2da parte (java)
03.g Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir) (java)
03.h Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir) 2da parte (java)
03.i Implementación de una Lista de datos. (java)
03.j Búsqueda Secuencial dentro de la lista de datos. (java)
03.k Búsqueda Aleatoria dentro de la lista de datos. (java)
03.l Búsqueda binaria dentro de una lista ordenada de datos. (java)
03.m Método para Ordenar - La Burbuja (java)
03.n Método para Ordenar - QuickSort Recursivo (java)
03.o Ejercicios Resueltos, ordenar con Java (java)
04.a Nuestro primer Objeto en Java (java)
04.b Codificación del primer Objeto en Java (java)
Ejemplo de cómo codificar nuestro primer objeto en Java, ejercicio resuelto.

04.b Codificación del primer Objeto en Java

(705)
Ejemplo de cómo codificar nuestro primer objeto en Java, ejercicio resuelto.
contact
Created,Modified
2009-04-10 08:40:34, 2009-05-07 19:13:56
Author,Nick
Gustavo Guillermo Perez, (madgus) [myblog]

Propiedades

Necesitamos la propiedad derecha e izquierda que serán punteros o variables que almacenarán objetos del mismo tipo “nodo” que serán como las manos que conectan los objetos adyacentes.

Necesitamos la propiedad valor que almacenará una cantidad entera dentro del objeto, y esta cantidad se establecerá al construir el objeto.

  1. package com.compunauta.aprendiendojava;

  2. public class Nodo {

  3. public Nodo izquierda=null;

  4. public Nodo derecha=null;

  5. public int Dato;

  6. public Nodo(int Dato) {

  7. this.Dato=Dato;

  8. }

  9. }

Ahora para hacer pruebas construiremos un método principal y como esta vez la información la almacenaremos en un arreglo sería interesante que tengamos un par de apuntadores principales que nos permitan acceder al primer y último objeto de manera inmediata, así que incluiremos esos apuntadores para trabajar. Utilizaremos también las funciones que hemos visto anteriormente para leer enteros del teclado y recorreremos la lista del elemento inicial (el más pequeño) al elemento final (el más grande), después incluiremos algunas modificaciones para mejorar la capacidad de inserción acortando las comparaciones y más adelante rediseñaremos el método para tener mayor control sobre los elementos que no pertenecen a un arreglo en concreto.

  1. package com.compunauta.aprendiendojava;

  2. import java.io.*;

  3. /**

  4. * <p>Título: Aprendiendo Java</p>

  5. * <p>Descripción: Ejemplos del Libro Aprendiendo Java de Compunauta</p>

  6. * <p>Copyright: Copyright (c) 2007 www.compunauta.com</p>

  7. * <p>Empresa: COMPUNAUTA</p>

  8. * @author Gustavo Guillermo Pérez

  9. * @version 2007.10.02

  10. */

  11. public class Nodo {

  12. public Nodo izquierda=null;

  13. public Nodo derecha=null;

  14. public int Dato;

  15. public Nodo(int Dato) {

  16. this.Dato=Dato;

  17. }

  18. public static Nodo ini=null; //inicio

  19. public static Nodo fin=null; //final

  20. public static int total=0;

  21. public static void main(String[] args) {

  22. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

  23. System.out.println("Ingrese 10 números, de a uno presionando ENTER");

  24. for (int i = 0; i < 10; i++) {

  25. addObject(leerInt(br));

  26. }

  27. printList();

  28. }

  29. public static void addObject(int Dato){

  30. Nodo dato=new Nodo(Dato);

  31. Nodo apuntador;

  32. total++;

  33. if (total==1){

  34. ini=dato;

  35. fin=ini;

  36. }else{

  37. if (fin.Dato <= Dato){

  38. fin.derecha=dato;

  39. dato.izquierda=fin;

  40. fin=dato;

  41. return;

  42. }

  43. if (ini.Dato >= Dato){

  44. ini.izquierda=dato;

  45. dato.derecha=ini;

  46. ini=dato;

  47. return;

  48. }

  49. apuntador=ini;

  50. while (apuntador.Dato < Dato){

  51. apuntador=apuntador.derecha;

  52. }

  53. dato.izquierda=apuntador.izquierda;

  54. apuntador.izquierda.derecha=dato;

  55. dato.derecha=apuntador;

  56. apuntador.izquierda=dato;

  57. return;

  58. }

  59. }

  60.  

  61. public static void printList(){

  62. Nodo apuntador=ini;

  63. int elementos=0;

  64. while (apuntador!=null){

  65. System.out.println("Elemento ["+(elementos++)+"]:"+apuntador.Dato);

  66. apuntador=apuntador.derecha;

  67. }

  68. }

  69. public static int leerInt(BufferedReader buff){

  70. int lee=0;

  71. boolean error;

  72. do {

  73. error=false;

  74. try {lee = Integer.parseInt(buff.readLine());}

  75. catch (NumberFormatException ex) {

  76. System.out.println("Entrada erronea, repetir:?");

  77. error=true;}

  78. catch (Exception ex){ex.printStackTrace(System.err);}

  79. } while (error);

  80. return lee;

  81. }//final de la funcion leer

  82. }


Como podemos ver la función printList() recorre la lista para impresión en pantalla y la función leer renglones, es como la que hemos visto anteriormente, la que realiza la operación de inserción en la lista es addObject(int Dato) y tenemos en cuenta 4 casos.

  1. El primer objeto es ini y fin y tiene nulas derecha e izquierda

  2. Si no es el primer objeto y es más grande que todos unir a la derecha

  3. Si no es el primer objeto y es más pequeño que todos unir a la izquierda

  4. Si se encuentra en medio, recorremos desde el inicio hasta encontrar uno más grande.

Nota: Queda como ejercicio para el lector modificar el programa para recorrer la lista de menor a mayor o mayor a menor dependiendo del valor del dato a insertar.

 


leavecomment

*Hasta que esta leyenda no desaparezca el libro no ha sido terminado, descarge en pdf:

http://compunauta.com/forums/linux/programacion/java/ebook.html




Aprendiendo Java - Ejemplos resueltos, Ejercicios, prácicas y técnicas de programación con Java #1 - ezine - ©Compunauta - myblog - Anuncios - 1072