Programación Orientada a objetos y estructura de datos a fondo. Implementación de algoritmos en java - LibreriadelaU
Recuerda que por compras superiores a $80.000 tu envío es gratis a toda Colombia | Envío gratis nacional, aplican restricciones para algunas zonas del país
Buscar
Buscar
Mundo
Infantil
Libros
de Literatura
Técnicos
académicos
Libros
universitarios
Carrito de Compras
0
Carrito de Compras
No hay productos en el carrito
Total $ 0
Seguir comprando Seguir Comprando
¡Vas por buen camino,
Te faltan 80.000 para obtener envío gratis!
Envío gratis para determinadas zonas de cobertura
Envío gratis para envíos mayores a 80.000
SINÓPSIS:

Programación orientada a objetos y estructura de datos a fondo es un libro pensado para extender los conocimientos que fueron adquiridos a lo largo de los cursos de las asignaturas iniciales de programación; principalmente de Programación estructurada. La finalidad de iniciar explicando Programación Orientada a Objetos (POO) es proveer una herramienta que permita encapsular la lógica y la complejidad de aquellos algoritmos; ocultándola para no verla. Y así concentrarse en el análisis, diseño y desarrollo de algoritmos con mayor grado de complejidad. Para quienes adquirieron sus conocimientos básicos programando en C, la obra comienza explicando los conceptos principales de encapsulamiento implementándolos con C++. Pero esto es solo el comienzo, ya que el curso de programación avanzada que se propone transita por los senderos del lenguaje Java. ¿Por qué Java? Porque hoy en día, y desde hace más de 20 años, Java es el lenguaje de programación con mayor nivel de aceptación en el ámbito profesional. La mayoría de las empresas desarrollan sus aplicaciones en Java. Y, aunque aquí el foco principal estará puesto sobre la lógica algorítmica, cuando implemente estos algoritmos con Java, el lector estará adquiriendo una destreza que le permitirá incorporarse a trabajar en proyectos de desarrollo que utilicen este lenguaje.Además, el lenguaje de programación Java provee una muy extensa biblioteca de clases, por lo que estaremos exentos de tener que programar nosotros mismos cuestiones que, a esta altura, resultarían triviales y básicas.En temas que si aborda son las estructuras lineales (listas, pilas, colas) y métodos de ordenamiento de colecciones, lo que le permite concentrarse en entender su lógica de programación; pues la implementación ya la provee el lenguaje Java.

CARACTERÍSTICAS:

Atributos LU

Año de Edición2017
TipoLibro
AutorIng Pablo Augusto Sznajdleder
Tabla de Contenido
1 Encapsulamiento a través de clases y objetos 

1.1 Introducción 

1.2 Clases y objetos
 
1.2.1 Las clases 

1.2.2 Miembros de la clase 

1.2.3 Interfaz y encapsulamiento 

1.2.4 Estructura de una clase
 
1.2.5 El constructor y el destructor
 
1.2.6 Los métodos 

1.2.7 Los objetos
 
1.2.8 Instanciar objetos

1.2.9 Operadores new, delete y punteros a objetos
 
1.2.10 Sobrecarga de métodos
 
1.3 Encapsulamiento de estructuras lineales
 
1.3.1 Análisis de la clase Pila 

1.3.2 Templates y generalizaciones 

1.4 El lenguaje de programación Java

1.4.1 El programa principal en Java 

1.4.2 Templates en C++, generics en Java 

1.4.3 Los wrappers (envoltorios) de los tipos de datos primitivos

1.4.4 Autoboxing 

1.5 Resumen 

2 Introducción al lenguaje de programación Java 

2.1 Introducción 

2.2 Comencemos a programar 

2.2.1 El Entorno Integrado de Desarrollo (IDE)
 
2.2.2 Entrada y salida estándar

2.2.3 Comentarios en el código fuente 

2.3 Tipos de datos, operadores y estructuras de control
 
2.3.1 El bit de signo para los tipos de datos enteros

2.3.2 El compilador y la máquina virtual (JVM o JRE)
 
2.3.3 Estructuras de decisión 

2.3.4 Estructuras iterativas 

2.3.5 El tipo de datos boolean y las expresiones lógicas 

2.3.6 Las constantes 

2.3.7 Arrays

2.3.8 Matrices

2.3.9 Literales de cadenas de caracteres

2.3.10 Caracteres especiales 

2.3.11 Argumentos en línea de comandos

2.4 Tratamiento de cadenas de caracteres 

2.4.1 Acceso a los caracteres de un string

2.4.2 Mayúsculas y minúsculas
 
2.4.3 Ocurrencias de caracteres

Programación orientada a objetos y estructura de datos a fondo - Sznajdleder
X - Contenido

2.4.4 Subcadenas

2.4.5 Prefijos y sufijos
 
2.4.6 Posición de un substring dentro de la cadena
 
2.4.7 Conversión entre números y cadenas
 
2.4.8 Representación en diferentes bases numéricas
 
2.4.9 La clase StringTokenizer
 
2.4.10 Comparación de cadenas
 
2.5 Resumen
 
3 Programación orientada a objetos
 
3.1 Introducción 

3.2 Clases y objetos
 
3.2.1 Los métodos
 
3.2.2 Herencia y sobrescritura de métodos 

3.2.3 El método toString

3.2.4 El método equals
 
3.2.5 Declarar y “crear” objetos

3.2.6 El constructor 

3.2.7 Repaso de lo visto hasta aquí
 
3.2.8 Convenciones de nomenclatura
 
3.2.9 Sobrecarga de métodos
 
3.2.10 Encapsulamiento
 
3.2.11 Visibilidad de los métodos y los atributos 

3.2.12 Packages (paquetes)
 
3.2.13 Estructura de paquetes y la variable CLASSPATH 

3.2.14 Las APIs (Application Programming Interface) 

3.2.15 Representación gráfica UML 

3.2.16 Importar clases de otros paquetes

3.3 Herencia y polimorfismo 

3.3.1 Polimorfismo
 
3.3.2 Constructores de subclases 

3.3.3 La referencia super
 
3.3.4 La referencia this 

3.3.5 Clases abstractas
 
3.3.6 Constructores de clases abstractas
 
3.3.7 Instancias
 
3.3.8 Variables de instancia
 
3.3.9 Variables de la clase
 
3.3.10 El garbage collector (recolector de residuos) 

3.3.11 El método finalize
 
3.3.12 Constantes
 
3.3.13 Métodos de la clase 

3.3.14 Clases utilitarias
 
3.3.15 Referencias estáticas 

3.3.16 Colecciones (primera parte) 

3.3.17 Clases genéricas
 
3.4 Interfaces

3.4.1 Desacoplamiento de clases
 
Programación orientada a objetos y estructura de datos a fondo - Sznajdleder
Contenido - XI

3.4.2 El patrón de diseño de la factoría de objetos
 
3.4.3 Abstracción a través de interfaces 

3.4.4 La interface Comparable
 
3.4.5 Desacoplar aún más
 
3.4.6 La interface Comparator 

3.5 Colecciones de objetos
 
3.5.1 Cambio de implementación 

3.5.2 El método Collections.sort

3.6 Excepciones 

3.6.1 Errores lógicos vs. errores físicos
 
3.6.2 Excepciones declarativas y no declarativas 

3.6.3 El bloque try–catch-finally

3.6.4 El método printStackTrace

3.7 Resumen

4 Estructuras de datos lineales 

4.1 Introducción

4.2 Estructuras estáticas 

4.3 Estructuras dinámicas 

4.3.1 Operaciones asociadas a las estructuas

4.4 Estructuras dinámicas en Java 

4.4.1 Memoria dinámica y punteros

4.4.2 Estructura Nodo

4.4.3 Lista enlazada

4.4.4 Pila 

4.4.5 Cola

4.4.5.1 Cola (implementación mejorada) 

4.4.6 Clases LinkedList, Stack y Queue

4.4.7 Tablas de dispersión (Hashtable)

4.4.8 Estructuras de datos combinadas

4.4.9 Árboles

4.4.10 Árbol Binario de Búsqueda (ABB) 

4.4.11 La clase TreeSet

4.5 Resumen 

5 Compresión de archivos mediante el algoritmo de Huffman 

5.1 Introducción 

5.2 El algoritmo de Huffman

5.2.1 Paso 1 - Contar la cantidad de ocurrencias de cada carácter 

5.2.2 Paso 2 - Crear una lista enlazada 

5.2.3 Paso 3 - Convertir la lista enlazada en el árbol Huffman 

5.2.4 Paso 4 - Asignación de códigos Huffman
 
5.2.5 Paso 5 - Codificación del contenido
 
5.2.6 Proceso de decodificación y descompresión
 
5.3 Aplicación práctica
 
5.3.1 Compresor de archivos (szzip.java) 

5.3.2 Descompresor de archivos (szunzip.java) 

Programación orientada a objetos y estructura de datos a fondo - Sznajdleder
XII - Contenido

5.3.3 Estructura del archivo .szcod (árbol Huffman)
 
5.3.4 Estructura del archivo .szdat (archivo comprimido) 

5.3.5 El setup del ejercicio
 
5.4 Análisis de clases y objetos 

5.4.1 szzip.java

5.4.2 szunzip.java 

5.5 Interfaces e implementaciones
 
5.5.1 ICode.java - Interface de los códigos Huffman 

5.5.2 ITree.java - Interface del árbol binario o árbol Huffman 

5.5.3 IList.java - Interface de la lista enlazada
 
5.5.4 ITable.java - Interface de la tabla de ocurrencias
 
5.5.5 IFileInput.java - Interface del archivo que vamos a comprimir o a restaurar
 
5.5.6 IFileCode.java - Interface del archivo de códigos Huffman
 
5.5.7 IFileCompressed.java - Interface del archivo comprimido 

5.6 Manejo de archivos en Java
 
5.6.1 Leer un archivo (clase FileInputStream) 

5.6.2 Bytes sin bit de signo 

5.6.3 Escribir un archivo (clase FileOutputStream) 

5.6.4 Buffers de entrada y salida 

5.7 Clases utilitarias
 
5.7.1 La clase UTree - Recorrer el árbol binario 

5.7.2 La clase UFile - Leer y escribir bits en un archivo 

5.7.3 La clase UFactory - Factoría de objetos
 
5.8 Resumen 

6 Recursividad
 
6.1 Introducción 

6.2 Conceptos iniciales 

6.2.1 Funciones recursivas 

6.2.2 Finalización de la recursión 

6.2.3 Invocación a funciones recursivas

6.2.4 Funcionamiento de la pila de llamadas (stack)
 
6.2.5 Funciones recursivas vs. funciones iterativas
 
6.3 Otros ejemplos de recursividad 

6.4 Permutar los caracteres de una cadena 

6.5 Búsqueda binaria 

6.6 Ordenamiento por selección 

6.7 La función de Fibonacci
 
6.7.1 Optimización del algoritmo recursivo de Fibonacci
 
6.8 Resumen
 
7 Árboles

7.1 Introducción 

7.1.1 Tipos de árbol

7.1.2 Implementación de la estructura de datos
 
7.2 Árbol binario

Programación orientada a objetos y estructura de datos a fondo - Sznajdleder
Contenido - XIII

7.2.1 Niveles de un árbol binario 

7.2.2 Recorrer los nodos de un árbol binario
 
7.2.3 Recorrido en amplitud o “por niveles”
 
7.2.4 Recorridos en profundidad (preorden, postorden e inorden)
 
7.2.5 Implementación iterativa del recorrido en preorden
 
7.2.6 Implementación iterativa del recorrido en postorden
 
7.4 Árbol Binario de Búsqueda 

7.4.1 Crear un Árbol Binario de Búsqueda (ABB)
 
7.4.2 Encapsulamiento de la lógica y la estructura de datos (clase Abb)

7.4.3 Agregar un elemento al ABB (método agregar)
 
7.4.4 Ordenar valores mediante un ABB (recorrido inOrden)

7.4.5 Búsqueda de un elemento sobre un ABB (método buscar)
 
7.4.6 Eliminar un elemento del ABB (método eliminar)
 
7.5 Árbol n-ario
 
7.5.1 Nodo del árbol n-ario 

7.5.2 Recorridos sobre un árbol n-ario 

7.5.3 Permutar los caracteres de una cadena 

7.5.4 Implementación de un “AutoSuggest”
 
7.6 Resumen 

8 Complejidad algorítmica 

8.1 Introducción
 
8.2 Conceptos iniciales 

8.2.1 Análisis del algoritmo de la búsqueda secuencial

8.3 Notación O grande (cota superior asintótica)
 
8.3.1 Análisis del algoritmo de la búsqueda binaria 

8.3.2 Análisis del algoritmo de ordenamiento por burbujeo
 
8.4 Cota inferior (Ω) y cota ajustada asintótica (Θ)
 
8.5 Resumen 

9 Algoritmos de ordenamiento
 
9.1 Introducción 

9.2 Bubble sort (ordenamiento por burbujeo) 

9.2.1 Bubble sort optimizado
 
9.3 Selection sort (ordenamiento por selección)
 
9.4 Insertion sort (ordenamiento por inserción) 

9.5 Quicksort (ordenamiento rápido)
 
9.5.1 Implementación utilizando arrays auxiliares 

9.5.2 Implementación sin arrays auxiliares
 
9.6 Heapsort (ordenamiento por montículos) 

9.6.1 Árbol binario semicompleto 

9.6.2 Representar un árbol binario semicompleto en un array 

9.6.3 Montículo (heap)
 
9.6.4 Transformar un árbol binario semicompleto en un montículo
 
9.6.5 El algoritmo de ordenamiento por montículos 

9.7 Shellsort (ordenamiento Shell) 

Programación orientada a objetos y estructura de datos a fondo - Sznajdleder
XIV - Contenido

9.8 Binsort (ordenamiento por cajas) 

9.9 Radix sort (ordenamiento de raíz)
 
9.9.1 Ordenar cadenas de caracteres con radix sort
 
9.10 Resumen 

10 Estrategia algorítmica 

10.1 Introducción
 
10.2 Divide y conquista
 
10.3 Greedy, algoritmos voraces
 
10.3.1 Seleccionar billetes de diferentes denominaciones
 
10.3.2 Problema de la mochila 

10.4 Programación dinámica
 
10.4.1 Problema de los billetes según la programación dinámica
 
10.5 Resumen
 
11 Algoritmos sobre grafos 

11.1 Introducción
 
11.2 Definición de grafo 

11.2.1 Grafos conexos y no conexos 

11.2.2 Grafos dirigidos y no dirigidos 

11.2.3 El camino entre dos vértices
 
11.2.4 Ciclos

11.2.5 Árboles

11.2.6 Grafos ponderados 

11.2.7 Vértices adyacentes y matriz de adyacencias 

11.2.8 La clase Grafo
 
11.2.10 Determinar la existencia de un ciclo
 
11.2.11 Los nodos “vecinos”

11.3 El problema de los caminos mínimos 

11.3.1 Algoritmo de Dijkstra 

11.3.2 Dijkstra, enfoque greedy

11.3.3 Dijkstra, implementación por programación dinámica 

11.4 Árbol de cubrimiento mínimo (MST)
 
11.4.1 El algoritmo de Prim 

11.4.2 Algoritmo de Kruskal
 
11.5 Resumen
 
Bibliografía

ISXN9789587783377
Núm. Páginas316
Peso (Físico)600
Tamaño (Físico)17 x 23 cm
Acabado (Físico)Tapa Rustica
TítuloProgramación Orientada a objetos y estructura de datos a fondo. Implementación de algoritmos en java

Botón empaque navideño

SKU:
322056
ISBN:

Programación Orientada a objetos y estructura de datos a fondo. Implementación de algoritmos en java

Autor:

Botón empaque navideño

programacion-orientada-a-objetos-y-estructura-9789587783377-alfa
Programación Orientada a objetos y estructura de datos a fondo. Implementación de algoritmos en java
Por: $77.000,00ou
48x de $1.604,16
sem juros
ComprarVendedor Libreria de la U

Por: $77.000,00ou X de

COMPRAR
Comprar
Este libro es Impreso Bajo Demanda, recuerda que el tiempo de producción puede tardar hasta 10 días hábiles después de su adquisición, más el tiempo de envío según su lugar de destino (2 a 4 días).
Conoce y sigue paso a paso el instructivo de compra y descarga en la sección de "Todo sobre E-books", también puedes verlo haciendo clic aquí.

Nota: Nuestros libros electrónicos son visualizados desde Adobe Digital Editions® - No compatible con iOS 13.0 (Programa gratuito de lectura digital).

Atención: el sistema operativo LINUX y la APP Kindle no son compatibles con el sistema de DRM de Adobe. Por favor ten esto en cuenta al momento de comprar tus E-books.

Adobe Digital Editions
Este libro se encuentra en España y el precio ya incluye los gastos de nacionalización. El envío nacional es gratuito. (Aplican restricciones en algunas zonas) El tiempo de entrega será de 15 días hábiles aproximadamente luego de tu compra.
Este libro es impreso. El tiempo normal de entrega es de 2 a 4 días hábiles.

También te puede interesar

  • Botón empaque navideño

    505_9789587623819_ediu

    Hacking y seguridad de páginas Web
    Autor
    • Varios Autores

    $51.000,00
  • Botón empaque navideño

    analisis-de-diseno-de-algoritmos-9789587757927-unal

    Análisis y diseño de algoritmos.Un enfoque práctico
    Autor
    • Eduardo Villegas Jaramillo, Luz Enith Guerrero Mendieta

    $60.000,00
  • IMPRESOS iguales o mayores a $80,000

    Botón empaque navideño

    1021_9786076222027_alfa

    Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java
    Autor
    • José Alfredo Jiménez, Eréndira Miriam Jiménez, Laura Nelly Alvarado

    $92.000,00
  • Botón empaque navideño

    historia-economica-de-colombia-en-el-siglo-XX-9789588987101-arbo

    Historia económica del Colombia en el siglo XX
    Autor
    • Roberto Junguito Bonnet

    $70.000,00
HORARIO DE ATENCIÓN:
Lunes a viernes: 7:00 am a 6:00 pm
Sábados: 9:00 am a 12:00 m.
© 2021 LibreriadelaU.com. Todos los derechos reservados. | LibreriadelaU es una marca de Hipertexto SAS. | All Rights Reserved Empowered by Hipertexto
Agencia ecommerce Xtrategik
Tecnología