Estructura de datos

Ejercicio resuelto: semáforo con JavaScript

En este post veremos la solución a un ejercicio sencillo de JavaScript. Se trata de crear una función que regrese “amarillo”, “rojo”, o “verde” dependiendo del argumento que reciba indicando la luz encendida actualmente.

La función va a indicar cuál es la luz que debería encender de acuerdo a la que está encendida actualmente.

Si la luz es “rojo” entonces debe mostrar “verde”, si es “verde” debe mostrar “amarillo” y finalmente si es “amarillo” debe mostrar “rojo”.

Por cierto, este es un ejercicio de Codewars.

Continue reading…

Ver si elemento existe en arreglo de Ruby o buscar su índice usando index e include

Comprobar si elemento existe en arreglo o buscar índice en Ruby

En este post veremos dos cosas con arreglos y Ruby: cómo saber si un elemento existe en un arreglo, y cómo buscar u obtener el índice de un elemento dentro de un arreglo.

Saber si un elemento existe es útil cuando estamos haciendo una lista de valores que no se repiten, y buscar el índice funciona para cuando necesitamos hacer algo con un elemento en caso de que no exista.

Ver si elemento existe en arreglo de Ruby o buscar su índice usando index e include

Ver si elemento existe en arreglo de Ruby o buscar su índice usando index e include

Veremos dos funciones con Ruby y arreglos: index e include.

Continue reading…

Agregar y eliminar elementos de un arreglo en Ruby

Eliminar y agregar elementos a arreglo en Ruby

Hoy veremos algunas operaciones básicas con arreglos en Ruby. Se trata de agregar (operación push) elementos a un arreglo existente, así como de eliminar (pop o unshift) elementos de un arreglo a través del índice.

Los arreglos funcionan cuando tenemos que guardar una lista de elementos en memoria y se necesita manipularla.

Agregar y eliminar elementos de un arreglo en Ruby

Agregar y eliminar elementos de un arreglo en Ruby

Con Ruby hay muchas formas de agregar o quitar elementos de arreglos, veremos muchas de ellas.

Continue reading…

Eliminar clave de un diccionario con Python

Eliminar valor de diccionario en Python

Para adentrarnos más en el manejo de los diccionarios con Python hoy veremos cómo eliminar determinada clave de un diccionario; es decir, eliminar un dato de un diccionario.

Esto de los diccionarios se utiliza en WaterPy para mandar la ruta de la marca de agua y el directorio que se va a procesar.

Eliminar clave de un diccionario con Python

Eliminar clave de un diccionario con Python

Por eso es que hoy veremos una operación simple con Python: eliminar claves de un diccionario, y a su vez, eliminar los valores.

Continue reading…

Comprobar si diccionario tiene clave en Python

Comprobar si diccionario tiene determinada clave en Python

Los diccionarios en Python son útiles en muchas circunstancias. Por ejemplo, para eso de los args y kwargs, así como para usarlos como estructura de datos en donde se accede en un tiempo óptimo gracias a que podemos usar sus claves como índices para acceder a los mismos.

Comprobar si diccionario tiene clave en Python

Comprobar si diccionario tiene clave en Python

Hoy veremos algo muy simple en Python: comprobar si un diccionario tiene una clave, es decir, si tiene un dato en determinada clave o si cuenta con ella.

Continue reading…

Contar frecuencia de palabras que el usuario introduce

Contar frecuencia de palabras en C

Realizar conteo de ocurrencias de palabras en una oración con C

Ya estamos aquí con otro tutorial de C. Lo que haremos ahora será analizar una cadena o string, contar las palabras que tiene (ignorando puntos, espacios y signos) y luego agruparlas para indicar la frecuencia con la que se repiten.

Este ejercicio puede resolverse de varias maneras pero yo he decidido hacerlo a través de una pila en donde almacenaremos structs.

Aquí puedes ver un ejemplo de una pila de enteros, la modificaremos un poco para que funcione con structs.

¿Por qué una pila en lugar de un arreglo? muy fácil, porque la pila puede tener un tamaño infinito.

Al final generaremos una tabla como la que se ve en la imagen (aunque la frecuencia es 1 en la mayoría de veces, la función trabaja bien; el problema fue que la cadena de prueba no tenía muchas palabras repetidas):

Contar frecuencia de palabras de una oración con C

Contar frecuencia de palabras de una oración con C

 

Continue reading…

Pila dinámica en C

Implementación de una pila dinámica en C

Pila o stack dinámica en el lenguaje C

Una pila es una estructura de datos simple. Los datos se van apilando uno tras otro. Podemos abstraer cada elemento como un nodo que puede apuntar a otro nodo.

Su modo de acceso es LIFO: el último en entrar es el primero en salir. Las operaciones que tiene son 2: push y pop; la primera le pone un elemento y la segunda quita el último.

Pila dinámica en C

Pila dinámica en C

Veremos las operaciones básicas de una pila o stack en C; además de otras que hice para exponer aquí. Son:

  • Tamaño: devolver el tamaño de la pila
  • Apilar, también conocido como push: agregar un elemento
  • Desapilar, o la operación pop: quitar el último elemento; es decir, el elemento superior
  • Leer último: leer el elemento superior de la pila
  • Vacía: indica si la pila está vacía
  • Imprimir: recorrer la pila e imprimir sus valores

Por cierto, esta pila será dinámica: podremos poner elementos infinitos siempre y cuando nuestra memoria RAM alcance (cosa que es muy, muy difícil que ocurra)

Continue reading…