Estructuras de datos en java
()
Información de este libro electrónico
Otros títulos de la serie Estructuras de datos en java ( 30 )
Breve historia de la narrativa colombiana: Siglos XVI-XX Calificación: 5 de 5 estrellas5/5La novela de crímenes en América Latina: un espacio de anomia social Calificación: 5 de 5 estrellas5/5República, violencia y género en la novela de crímenes Calificación: 0 de 5 estrellas0 calificacionesMemoria de crímenes: Literatura, medios audiovisuales y testimonios Calificación: 0 de 5 estrellas0 calificacionesCapitalismo, crisis y anarquismo en la novela de crímenes del siglo XXI en España Calificación: 0 de 5 estrellas0 calificacionesLas hojas breves: Acerca de Fernando Pessoa Calificación: 0 de 5 estrellas0 calificacionesMemorias de una cinefilia: (Andrés Caicedo, Carlos Mayolo, Luis Ospina) Calificación: 1 de 5 estrellas1/5Cuando nada concuerda Calificación: 0 de 5 estrellas0 calificacionesElementos de estadística para ingeniería: Un curso básico Calificación: 0 de 5 estrellas0 calificacionesEl cielo y otros infiernos Calificación: 0 de 5 estrellas0 calificacionesPython a su alcance Calificación: 4 de 5 estrellas4/5Asedios a la palabra: (Para un arte poético) Calificación: 0 de 5 estrellas0 calificacionesJusticia y paz en la novela de crímenes Calificación: 0 de 5 estrellas0 calificacionesEstática aplicada en ingeniería civil: Introducción al análisis de cerchas, marcos y vigas Calificación: 0 de 5 estrellas0 calificacionesAnálisis de Fourier.: Teoría y aplicaciones Calificación: 0 de 5 estrellas0 calificacionesLa anomia en la novela de crímenes en Colombia Calificación: 0 de 5 estrellas0 calificacionesEstructuras de datos en java Calificación: 0 de 5 estrellas0 calificacionesIngeniería de Costos: Un enfoque basado en la gestión de operaciones de manufactura y logística Calificación: 1 de 5 estrellas1/5Diseño Geometrico de Vías Calificación: 0 de 5 estrellas0 calificacionesGuía para el análisis y solución de problemas de resistencia de materiales Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la ciencia de datos en R: Un enfoque práctico Calificación: 0 de 5 estrellas0 calificacionesÁlgebra abstracta aplicada en ingeniería: casos de aplicación en sistemas difusos tipo 1 y tipo 2 Calificación: 0 de 5 estrellas0 calificacionesIntroducción Al Psoc5Lp: Teoría y aplicaciones práctica Calificación: 0 de 5 estrellas0 calificacionesEl Nuevo Reto: Los Datos Abiertos En Colombia Calificación: 0 de 5 estrellas0 calificacionesIncidencia de la lógica del cambio en la viabilidad organizacional: Conceptos de transmisión y distribución. Modelación de líneas y redes Calificación: 0 de 5 estrellas0 calificacionesGeometría euclidiana Calificación: 0 de 5 estrellas0 calificacionesHerramientas de análisis para la estabilidad estática postural: Caso de aplicación: personas con amputación transtibial Calificación: 0 de 5 estrellas0 calificacionesAplicaciones Web con HTML, JavaScript y Php Calificación: 0 de 5 estrellas0 calificacionesMicrorredes eléctricas Calificación: 0 de 5 estrellas0 calificacionesMecatrónica: modelado, simulación y control de sistemas físicos Calificación: 0 de 5 estrellas0 calificaciones
Lee más de Luis Felipe Wanumen Silva
Bases de datos en SQL Server Calificación: 0 de 5 estrellas0 calificaciones
Relacionado con Estructuras de datos en java
Títulos en esta serie (39)
Breve historia de la narrativa colombiana: Siglos XVI-XX Calificación: 5 de 5 estrellas5/5La novela de crímenes en América Latina: un espacio de anomia social Calificación: 5 de 5 estrellas5/5República, violencia y género en la novela de crímenes Calificación: 0 de 5 estrellas0 calificacionesMemoria de crímenes: Literatura, medios audiovisuales y testimonios Calificación: 0 de 5 estrellas0 calificacionesCapitalismo, crisis y anarquismo en la novela de crímenes del siglo XXI en España Calificación: 0 de 5 estrellas0 calificacionesLas hojas breves: Acerca de Fernando Pessoa Calificación: 0 de 5 estrellas0 calificacionesMemorias de una cinefilia: (Andrés Caicedo, Carlos Mayolo, Luis Ospina) Calificación: 1 de 5 estrellas1/5Cuando nada concuerda Calificación: 0 de 5 estrellas0 calificacionesElementos de estadística para ingeniería: Un curso básico Calificación: 0 de 5 estrellas0 calificacionesEl cielo y otros infiernos Calificación: 0 de 5 estrellas0 calificacionesPython a su alcance Calificación: 4 de 5 estrellas4/5Asedios a la palabra: (Para un arte poético) Calificación: 0 de 5 estrellas0 calificacionesJusticia y paz en la novela de crímenes Calificación: 0 de 5 estrellas0 calificacionesEstática aplicada en ingeniería civil: Introducción al análisis de cerchas, marcos y vigas Calificación: 0 de 5 estrellas0 calificacionesAnálisis de Fourier.: Teoría y aplicaciones Calificación: 0 de 5 estrellas0 calificacionesLa anomia en la novela de crímenes en Colombia Calificación: 0 de 5 estrellas0 calificacionesEstructuras de datos en java Calificación: 0 de 5 estrellas0 calificacionesIngeniería de Costos: Un enfoque basado en la gestión de operaciones de manufactura y logística Calificación: 1 de 5 estrellas1/5Diseño Geometrico de Vías Calificación: 0 de 5 estrellas0 calificacionesGuía para el análisis y solución de problemas de resistencia de materiales Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la ciencia de datos en R: Un enfoque práctico Calificación: 0 de 5 estrellas0 calificacionesÁlgebra abstracta aplicada en ingeniería: casos de aplicación en sistemas difusos tipo 1 y tipo 2 Calificación: 0 de 5 estrellas0 calificacionesIntroducción Al Psoc5Lp: Teoría y aplicaciones práctica Calificación: 0 de 5 estrellas0 calificacionesEl Nuevo Reto: Los Datos Abiertos En Colombia Calificación: 0 de 5 estrellas0 calificacionesIncidencia de la lógica del cambio en la viabilidad organizacional: Conceptos de transmisión y distribución. Modelación de líneas y redes Calificación: 0 de 5 estrellas0 calificacionesGeometría euclidiana Calificación: 0 de 5 estrellas0 calificacionesHerramientas de análisis para la estabilidad estática postural: Caso de aplicación: personas con amputación transtibial Calificación: 0 de 5 estrellas0 calificacionesAplicaciones Web con HTML, JavaScript y Php Calificación: 0 de 5 estrellas0 calificacionesMicrorredes eléctricas Calificación: 0 de 5 estrellas0 calificacionesMecatrónica: modelado, simulación y control de sistemas físicos Calificación: 0 de 5 estrellas0 calificaciones
Libros electrónicos relacionados
Programación en Go Calificación: 5 de 5 estrellas5/5Java Curso Práctico Calificación: 0 de 5 estrellas0 calificacionesJava 17 Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar con Java Calificación: 4 de 5 estrellas4/5Programar en C | Paso a Paso: La guía sencilla para principiantes Calificación: 0 de 5 estrellas0 calificacionesAprende programación Python: python, #1 Calificación: 0 de 5 estrellas0 calificacionesEl gran libro de Android: 7ª Edición Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar Swift - Tercera Edición Calificación: 0 de 5 estrellas0 calificacionesJava a fondo - estudio del lenguaje y desarrollo de aplicaciones - 2a ed. Calificación: 5 de 5 estrellas5/5Aprende a Programar en C++ Calificación: 5 de 5 estrellas5/5Kotlin y Jetpack Compose. Desarrollo de aplicaciones Android Calificación: 0 de 5 estrellas0 calificacionesAcceso a Datos (GRADO SUPERIOR) Calificación: 3 de 5 estrellas3/5Backbone JS Calificación: 0 de 5 estrellas0 calificacionesIntroducción a los Algoritmos y las Estructuras de Datos 3: Introducción a los Algoritmos y las Estructuras de Datos, #3 Calificación: 0 de 5 estrellas0 calificacionesProgramación y Lógica Proposicional Calificación: 4 de 5 estrellas4/5Aprende sobre la Ingeniería de Software Calificación: 0 de 5 estrellas0 calificacionesAprende a programar en Java: de cero al infinito Calificación: 0 de 5 estrellas0 calificacionesLa Era del Código Calificación: 5 de 5 estrellas5/5Algoritmos a Fondo - Con implementaciones en c y java Calificación: 5 de 5 estrellas5/5Ingeniería y Arquitectura del Software Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar ASP .NET y C# - Segunda Edición Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación y Análisis de Software - 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesJava 17 Programación Avanzada Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos: 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesEstructuras de Datos en C/C++ Calificación: 0 de 5 estrellas0 calificacionesGestión de Bases de Datos Calificación: 0 de 5 estrellas0 calificacionesUF1471 - Bases de datos relacionales y modelado de datos Calificación: 0 de 5 estrellas0 calificacionesProgramación en C++ Calificación: 2 de 5 estrellas2/5Programación en Go 2ed Calificación: 0 de 5 estrellas0 calificacionesOCA Java 8 Programmer I Teoría y Práctica Para Certificación Calificación: 0 de 5 estrellas0 calificaciones
Programación para usted
Aprende Python desde cero hasta avanzado Calificación: 0 de 5 estrellas0 calificacionesPython para principiantes Calificación: 5 de 5 estrellas5/5Fundamentos De Programación Calificación: 5 de 5 estrellas5/5GuíaBurros Microsoft Excel: Todo lo que necesitas saber sobre esta potente hoja de cálculo Calificación: 4 de 5 estrellas4/5Aprende programación Python: python, #1 Calificación: 0 de 5 estrellas0 calificacionesGuía práctica de Kubernetes: Proyectos para crear aplicaciones de éxito con Kubernetes Calificación: 0 de 5 estrellas0 calificacionesLógica de programación Calificación: 5 de 5 estrellas5/5Aprendizaje automático y profundo en python: Una mirada hacia la inteligencia artificial Calificación: 0 de 5 estrellas0 calificacionesInteligencia artificial para programadores con prisa Calificación: 5 de 5 estrellas5/5HTML para novatos Calificación: 5 de 5 estrellas5/5Curso básico de Python: La guía para principiantes para una introducción en la programación con Python Calificación: 0 de 5 estrellas0 calificacionesDiseño y construcción de algoritmos Calificación: 4 de 5 estrellas4/5Curso de Programación y Análisis de Software Calificación: 4 de 5 estrellas4/5Aprende a Programar ASP .NET y C# - Segunda Edición Calificación: 0 de 5 estrellas0 calificacionesControles PLC con Texto Estructurado (ST): IEC 61131-3 y la mejor práctica de programación ST Calificación: 3 de 5 estrellas3/5La Era del Código Calificación: 5 de 5 estrellas5/5Python Para Principiantes Calificación: 0 de 5 estrellas0 calificacionesBases de Datos con MySQL Calificación: 4 de 5 estrellas4/5VBA Excel Guía Esencial Calificación: 5 de 5 estrellas5/5Matemáticas y gráficos con Python Calificación: 0 de 5 estrellas0 calificacionesDiseño de arquitecturas .NET orientadas a microservicios Calificación: 3 de 5 estrellas3/5Python Práctico Calificación: 0 de 5 estrellas0 calificacionesAdicción a los Videojuegos: Cómo Acabar con el Ciclo de Adicción a los Videojuegos y Desarrollar Habilidades Sociales Esenciales Calificación: 5 de 5 estrellas5/5Guía de HTML5, CSS3 y Javascript. La Web 2.0 Calificación: 4 de 5 estrellas4/5Python Machine Learning Calificación: 5 de 5 estrellas5/5Ortografía para todos: La tabla periódica de la ortografía Calificación: 5 de 5 estrellas5/5OCA Java 8 Programmer I Teoría y Práctica Para Certificación Calificación: 0 de 5 estrellas0 calificacionesAprende a programar: Crea tu propio sitio web Calificación: 4 de 5 estrellas4/5Programación y Lógica Proposicional Calificación: 4 de 5 estrellas4/5Aprender Docker, un enfoque práctico Calificación: 5 de 5 estrellas5/5
Comentarios para Estructuras de datos en java
0 clasificaciones0 comentarios
Vista previa del libro
Estructuras de datos en java - Luis Felipe Wanumen Silva
Tipos abstractos de datos
Concepto de TAD
En una aplicación de software podemos diferenciar claramente dos aspectos importantes: la interfaz de usuario y los procesos internos de la aplicación.
La interfaz de usuario en realidad es la parte más importante a corto tiempo para lograr que la aplicación sea atractiva al usuario. Pero a largo plazo lo único que garantiza que la aplicación perdure es la forma como se implementan sus procesos internos, ello requiere algunas operaciones y unas estructuras que serán las encargadas de almacenar la información sobre la cual se van a realizar las operaciones. Una muy buena alternativa para modelar software son los objetos abstractos que incluyan operaciones y estructuras en entes autónomos, autosuficientes y cerrados. Estos entes se conocen como tipos abstractos de datos (TAD).
Concepto de estructuras
En Java existen algunas formas simples de almacenar información. La primera es utilizando variables. Era en estas pequeñas áreas de memoria referenciadas por dichas variables en donde se almacenaban algunos datos. Por el tipo de datos tan primitivos que se pueden almacenar, se denominaban variables de tipos primitivos de datos
.
Con la llegada de lenguajes adelantados en programación orientados a objetos, se pensó en crear formas de almacenar y contener tipos primitivos de datos —que sirvieran como capa envolvente para encapsular también operaciones de conversión sobre estos datos—, y que se les denominó objetos de tipos de datos
.
Ahora bien, tanto para el caso de tipos primitivos de datos
como para el caso de objetos de tipos de datos
, se pueden construir estructuras más complejas que permitan crear arreglos de múltiples dimensiones basados en tipos primitivos o en objetos de tipos de datos. Recordemos por ejemplo que en Java una forma de crear una estructura compuesta de tres dimensiones asociada con la variable tabla
y donde la primera dimensión tiene un tamaño máximo de 4, la segunda de 6 y la tercera de 5 es la siguiente:
int tabla[][][] = new int[4][6][5];
A este tipo de implementaciones se les conoce con el nombre de estructuras compuestas, sin embargo a pesar de las ventajas que presenta trabajar con ellas, en algunos casos se necesita una representación más amplia de dicha estructura, en la cual sea posible añadir un elemento en medio de unos dos elementos específicos, y que la memoria utilizada por el mismo elemento sea liberada en tiempo de ejecución de la aplicación. Para lograr estas facilidades tenemos que recurrir a estructuras mucho más completas y dinámicas, es decir, que puedan adquirirse recursos de memoria cuando se necesiten y viceversa, que estos puedan eliminarse cuando no sean necesarios.
Tenemos una primera clasificación de las estructuras de datos en estructuras estáticas de datos
y en estructuras de datos dinámicas
.
Surge entonces el concepto de estructuras dinámicas, que no son más que la colección de varios elementos abstractos de datos autónomos en forma relacionada. A dichos elementos se les denomina por lo general nodos de la estructura
.
Veamos de forma gráfica todo lo expuesto anteriormente:
De acuerdo con el tipo de relaciones que tengan los nodos podremos especificar concretamente qué tipo de estructura dinámica es. En el siguiente gráfico se muestran algunas de las más conocidas subdivisiones de las estructuras dinámicas.
Estructuras estáticas de datos: arreglos, vectores o arrays
Introducción a los arreglos
A los arreglos comúnmente se les denomina arrays
, y también vectores
. Por experiencia podemos asegurar que son lo mismo. Se puso este item así con el fin de lograr que el usuario de este material pueda encontrar fácilmente los temas, dependiendo de cómo le llame a los arreglos.
Los arreglos en Java son siempre dinámicos por lo que no es necesario que el programador ponga la longitud. Es más, si lo hace se produce un error cuando se compile el programa.
Forma correcta de declarar un arreglo
int arreglo[]
Forma incorrecta de declarar un arreglo
int arreglo[3]
Otra forma correcta de declarar un arreglo
int[] arreglo
En esta última forma usamos los corchetes en el tipo de dato de la variable. Para comprender mejor esto veamos el ejemplo:
El programa anterior produce el siguiente resultado en el navegador:
Posición cero: 25
Posición uno: 14.
Observemos que si hubieramos reemplazado la línea de código:
por la línea de código
se habría producido un error en la aplicación, debido a que estábamos tratando de especificar con anterioridad la dimensión del arreglo, vector, array o como le llame el estudiante.
En Java se pueden declarar arrays de cualquier tipo:
Incluso se pueden construir arrays de arrays:
Los límites de los arrays se comprueban en tiempo de ejecución para evitar desbordamientos y la corrupción de la memoria.
En Java un array es realmente un objeto, porque tiene redefinido el operador []. Tiene una función miembro length. Se puede utilizar este método para conocer la longitud de cualquier array.
Para crear un array en Java hay dos métodos básicos; crear uno vacío,
O con sus valores iniciales:
Esto es equivalente a:
No se pueden crear arrays estáticos en tiempo de compilación:
Tampoco se puede rellenar un array sin declarar el tamaño con el operador new:
Es decir, todos los arrays en Java son estáticos. Para convertir un array en el equivalente dinámico en C/C++, se usa la clase vector, que permite en él operaciones de inserción, borrado, etc.
Impresión del contenido de un arreglo
Para lograr más claridad en los temas vistos, se plantea este programa:
El cual arroja el siguiente resultado:
Problemas con dimensiones de arreglos y utilización de length
Como se ha mencionado anteriormente en varias ocasiones, es posible definir un arreglo mediante la instrucción:
Pero hay que tener un gran cuidado con esto en el momento de asignarle valores a dicho arreglo, es decir, se le puede asignar valor a arreglo[0]
, arreglo[1]
, arreglo[2]
y arreglo[3]
, pero no es posible asignarle valores a arreglo[4]
, debido a que la longitud del arreglo es de 4. Para entenderlo mejor a continuación mostramos un programa que presenta un problema y por lo tanto no alcanza a imprimir los valores del arreglo. Veamos:
Para corregirlo es necesario saber el tamaño del arreglo que se ha declarado, con el fin de asignarle valores a posiciones del arreglo válidas. Esto se puede hacer mediante la función length
, que captura el tamaño del arreglo. A continuación se muestra la correción del ejercicio anterior:
Cómo llenar un vector posición por posición
En algunos casos es posible que se quiera hacer un programa que vaya capturando números o datos de forma cíclica, de tal suerte que al final del ciclo se haya llenado un vector. Este ejercicio, pese a lo sencillo, es escaso de encontrar en textos de Java, razón por la cual se expone a continuación con el fin de lograr que el lector tenga la mayor cantidad de material para lograr variado tipo de aplicaciones. Veamos:
El programa espera que el usuario digite un número, después de lo cual debe presionar el botón capturar
y repetir esta operación seis veces, luego se muestra en una caja de texto adicional los valores previamente insertados, se deshabilita la caja de texto inicial y se le cambia el texto al botón indicando que finalizó el programa¹.
Tablas de multiplicar
Arreglos con tamaño predeterminado
En secciones anteriores veíamos que era imposible escribir líneas como esta:
int arreglo[2] = {25,14};
Ello se debe básicamente a que en Java todas las variables son dinámicas, pero se puede hacer de la siguiente manera:
A continuación se muestra un programilla applet que utiliza esta forma de crear un arreglo con una longitud predeterminada y posteriormente le pone e imprime su contenido mediante un ciclo for. Veamos pues:
Cabe anotar que el manejo para los arreglos de tipo flota, doble, es similar al anterior, así que no creo que merezcan especial atención, no obstante a continuación se muestra un programa en el que se hacen arreglos de este tipo, con el fin de lograr claridad sobre ello.
Bueno, ahora usted, amigo lector, se preguntará, ¿qué pasa con los arreglos de string? Dado que los string son objetos y un string no es un dato primitivo, sino un tipo de objeto de dato, tenemos que tratarlo de forma diferente. Por ello más
