Última parte de este curso de C++ en donde seguiremos con árboles, archivos, y definición de POO (Programación Orientada a Objetos).
¡Comenzamos!
Árboles I
Árboles:
Un árbol consta de un conjunto finito de elementos, denominados nodos y un conjunto finito de líneas dirigidas, denominadas ramas, que conectan los nodos.
Propiedades del Árbol:
- Longitud de camino
- Altura de un nodo
- Profundidad de un nodo. Nivel
- Nodos hermanos
- Orden de un árbol
Árboles II
Árboles binarios:
Un árbol binario es un árbol de orden 2. Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.
Árboles III
Árbol binario de Búsqueda - ABB:
Es aquel que dado un nodo, todos los datos del sub árbol izquierdo son menores, mientras que todos los datos del sub árbol derecho son mayores.
Árboles IV
Para insertar nodos en un Árbol binario de búsqueda(ABB), necesitamos crear 2 funciones, una para crear un nuevo nodo y otra para insertar los nodos en el árbol.
Árboles V
En este vídeo vamos a aprender como mostrar el árbol completo.
Árboles VI
En este vídeo vamos a aprender como buscar un nodo en un árbol binario de búsqueda ABB.
Árboles VII
(PreOrden)
Recorrido en PreOrden (raíz, izquierdo, derecho):
Para recorrer un árbol binario no vacío en PreOrden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz:
- Visite la raíz
- Atraviese el sub-árbol izquierdo
- Atraviese el sub-árbol derecho
Árboles VIII
(InOrden)
Recorrido en InOrden (izquierdo, raíz, derecho):
Para recorrer un árbol binario no vacío en InOrden, hay que realizar las siguientes operaciones recursivamente en cada nodo:
- Atraviese el sub-árbol izquierdo
- Visite la raíz
- Atraviese el sub-árbol derecho
Árboles IX
(PostOrden)
Recorrido en PostOrden (izquierdo, derecho, raíz):
Para recorrer un árbol binario no vacío en InOrden, hay que realizar las siguientes operaciones recursivamente en cada nodo:
- Atraviese el sub-árbol izquierdo
- Atraviese el sub-árbol derecho
- Visite la raíz
Árboles X
En este vídeo veremos algunas correcciones al programa para que podamos eliminar nodos del Árbol, ademas veremos el inicio de la función eliminar.
Árboles XI
En este vídeo veremos como eliminar un nodo con 2 hijos (izquierdo y derecho).
Árboles XII
En este vídeo veremos como eliminar un nodo con un solo hijo, ya sea hijo izquierdo o derecho.
Árboles XIII
En este vídeo vamos a ver como podemos eliminar un nodo con un solo hijo, es decir un nodo hoja.
Archivos/Ficheros I
Árboles/Ficheros:
En C++ un fichero es simplemente un flujo externo que se puede abrir para entrada (dando lugar a un flujo de archivo de entrada que, para simplificar, llamaremos simplemente archivo o fichero de entrada), para salida (dando lugar a un flujo de archivo de salida que, para simplificar, llamaremos simplemente archivo o fichero de salida) o para entrada-salida (archivo o fichero de entrada-salida o archivo de E/S).
Archivos/Ficheros II
En este vídeo vamos a aprender como hacer la lectura de un archivo de texto en C++, utilizando las funciones de la librería fstream.
Archivos/Ficheros III
En este vídeo vamos a aprender como añadir texto en un archivo, y prácticamente tenemos que hacer lo mismo que al escribir, con la diferencia que ahora es modo en el que abrimos el archivo es ios::app.
POO I
Estudiaremos los conceptos de:
- Clase
- Objeto
- Abstracción
- Encapsulación
- Herencia
- Polimorfismo
Estas son las ideas más básicas que todo aquel que trabaja en POO debe comprender y manejar constantemente.
POO II
En este vídeo veremos un pequeño acercamiento a las clases en C++
POO III
En este video vamos a resolver el siguiente ejercicio:
Ejercicio 1: Construya una clase llamada Rectangulo que tenga los siguientes atributos: largo y ancho, y los siguientes metodos: perimetro() y area().
POO IV
En este vídeo vamos a ver como crear diferentes constructores en una misma clase, pero que se diferencien en numero de parámetros o en el tipo de estos.
POO V
En este video vamos a resolver el siguiente ejercicio:
Ejercicio 2: Construya una clase Tiempo que contenga los siguientes atributos enteros: horas, minutos y segundos. Haga que la clase contenga 2 constructores, el primero debe tener 3 parámetros Tiempo(int,int,int) y el segundo sólo tendrá un campo que serán los segundos y desensamble el número entero largo en horas, minutos y segundos.
POO VI
En este vídeo vamos a aprender que es un destructor en Programación Orientada a Objetos.
POO VII
En este vídeo vamos a ver los métodos getter y setter que nos sirven para mostrar los datos y establecer los datos respectivamente.
POO VIII
Herencia:
Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas específica.
POO IX
(Ejercicio)
En este video vamos a resolver el siguiente ejercicio:
Ejercicio 3: Realice un programa en C++, de tal manera que se construya una solución para la jerarquía(herencia) de clases mostrada en la siguiente figura.
POO X
Continuación del ejercicio anterior.
POO XI
El Polimorfismo (implementado en C++ con funciones virtual es) es la tercera característica esencial de un lenguaje orientado a objetos, después de la abstracción de datos y la herencia.
POO XII
(Ejercicio)
En este video vamos a resolver el último ejercicio:
Ejercicio 4: Crear un programa en C++ que tenga la siguiente jerarquía de clases: Animal(Clase Padre) - Humano(Clase Hija) - Perro(Clase Hija), y hacer polimorfismo con el metodo comer().