domingo, 29 de septiembre de 2019

¿Qué son las Listas enlazadas?

¿Recuerdan el concepto de memoria dinámica?
Pues si no, aquí lo veremos nuevamente y en el caso que te haya gustado, le entenderás muy fácilmente a este nuevo tema: Listas enlazadas.

¿Qué es una lista?
Al oír este término, en lo personal recuerdo cuando niño mi mamá me mandaba a la tienda para comprar cosas para el almuerzo. Entonces, me hacía una LISTA de productos que quería que le trajera. Una cosa tras otra.
Y eso es efectivamente una lista.

Pero en programación, ¿qué es una Lista enlazada?
Bueno, en estructuras de datos, podemos definirlo como un conjunto de elementos uno tras otro, enlazados por un vínculo y que tienen un inicio y un final.

Es decir que, podemos tener varios elementos, y tener una posición exacta de cada uno. Y hacer con cada uno lo que sea, como eliminarlo, editarlo, etc. Porque forma parte del concepto de memoria dinámica.

Veamos, si tengo una lista de 1,2 y 3.
Y quisiera agregar un cero al inicio, y eliminar el tres... Con los métodos que más adelante veremos podemos hacerlo y quedará de la siguiente manera: 0,1 y 2.

¿Les ves una poderosa utilidad a ello?
Pues, se puede programar tambien.

Cada elemento, le llamaremos NODO.
Que está compuesto por el ELEMENTO, o sea, la información y el ENLACE, que es dónde apunta.

Para finalizar, existe categorías de las listas enlazadas, las cuales son:

 *Listas simplemente enlazadas
 *Listas doblemente enlazadas
 *Listas circular simplemente enlazadas
 *Listas circular doblemente enlazadas

EJEMPLO GRÁFICO DE LISTAS ENLAZADAS


¿Te gustaría aprender más?
Sigue en este blog.

VER VIDEO PRÁCTICO

<!-- SI PUEDES IMAGINARLO, PUEDES PROGRAMARLO -->

viernes, 27 de septiembre de 2019

¿Que es la Recursividad?

La recursividad podríamos decir que es un proceso que se repite n veces hasta que llega a su final o es resuelto el problema, un ejemplo puede ser poner dos espejos enfrente esa misma imagen que se ve se repite ósea es recursiva.

Podemos entender que recursividad es un procedimiento para resolver problemas y ir haciendo mas pequeño el problema hasta que quede resuelto.

Resultado de imagen para recursividad

Para usarlo en programación tendríamos que crear una función y hacer un return para llamar a esa misma función y se ejecutara hasta que se resuelva el problema.

                             https://youtu.be/N6xzUiJsEPY.

miércoles, 25 de septiembre de 2019

¿Qué es Memoria Dinámica?


Bueno, en el último tema de este blog estuvimos hablando de la memoria estática, y que de esta no se pude modificar en tiempo de ejecución. Si no que tiene que asignarle un espacio y el programa lo reserva.

Pero ahora definiremos la memoria dinámica. Que es totalmente diferente a la estática, hasta podemos decir que es lo contrario. Si nos funciona para almacenar contenido, pero este sí se puede modificar en tiempo de ejecución.

Definamos en sí qué es memoria dinámica: es el espacio de memoria la cual su tamaño puede variar durante la ejecución de un programa.

Para entenderlo mejor pondremos el ejemplo de un CRUD (Create, Read, Update and Delete), que es un sistema automatizado para crear, cargar o leer, actualizar y eliminar cualquier tipo de información.  Es muy común en sistemas dinámicos por que se interactúa con el usuario.

Ya en programación lo más común es usar un vector donde el usuario puede agregar más elementos a la matriz o eliminarlos mientras se ejecuta el programa. Y este no presenta ningún error ni dificultad para hacerlo.


En Java, podemos programar un CRUD con una librería de Java.util una clase que se llama: arrayList. Esta clase tiene métodos para poder interactuar con la memoria del programa.
Y hacer la función del CRUD sin modificar el tamaño de la memoria en código.

Si quieres  ver el ejemplo de Memoria Dinámica en un pequeño CRUD en Java, puedes visitar el link de abajo. 

Esperando  que te haya servido de mucho.

VER VIDEO DE: CRUD ArrayList | Java

<!-- SI PUEDES IMAGINARLO PUEDES PROGRAMARLO -->


¿Que es Memoria Estática?


Alguna vez has oído hablar de memoria de una computadora, o de otro dispositivo. O por lo menos lo que nosotros tenemos, los recuerdos. Esto se llama memoria. Pero en informática tenemos dos tipos de memoria: dinámica y estática.

Esta última memoria es la que estudiaremos en este blog.

Primero, ¿qué es memoria? Es un espacio lógico para guardar información.

Con este concepto en mente podemos definir memoria estática como el espacio de memoria que no se modifica al menos en tiempo de ejecución.

Una de las ventajas puede ser que tiene una lógica simple de entender, óptima para resolver problemas.

Unas desventajas también pueden ser que no es óptimo con grandes cantidades, no se puede modificar en tiempo de ejecución, y al no usar la memoria completa seria como que estemos desperdiciando la memoria que queda


            Link de un ejemplo: https://www.youtube.com/watch?v=rUth8ps73bM

<!-- SI PUEDES IMAGINARLO PUEDES PROGRAMARLO -->

jueves, 19 de septiembre de 2019

¿QUÉ ES UN TDA?

En el mundo de programación existen muchas formas para crear la estructura de funcionamiento de un programa. Podemos crear un sistema de forma lineal, que consta de inicio, proceso y fin. Sin poder alterar ese curso. Pero también podemos realizar un sistema donde seguido del fin, se cree un proceso de forma dinámica, y por supuesto el fin. 

Con forma dinámica quiero decir que el usuario puede ejecutar varias funciones internas y sin seguir un patrón específico. Sino acorde a sus necesidades. Y este tipo de orden se conoce como programación orientada a objetos (POO).

Pero para entender bien la POO, definiremos qué es un TDA:

Sus siglas significan tipo de dato abstracto. Y hace referencia a un tipo de dato que se sabe qué hace ciertas cosas sin mencionarlas. Por ejemplo, podría yo decir “caballo”, y usted entenderá qué es, y qué hace. A esto le llamamos abstracción. Porque se obvia aparentemente lo que es.

Entonces en programación, podemos definir una función que realice una sola actividad, y el usuario poder utilizarla cuantas veces quiera. A estas funciones las llamamos métodos, y pertenecen a una  clase principal, y esa la podemos asociar con el “caballo”, y lo que hace caballo serán los métodos.

Los TDA consta de dos partes: Atributos y Métodos.

Los atributos  son los tipos de datos como los numéricos, cadenas, booleanos, etc.
Los métodos, como anteriormente mencionamos, es lo que hace la clase.


Resultado de imagen para tda estructura de datos

<!-- SI PUEDES IMAGINARLO PUEDES PROGRAMARLO -->


lunes, 16 de septiembre de 2019