Estructuras dinámicas

Arreglos

Pilas

Listas enlazadas

Listas lineales dinámicas

Listas lineales Estáticas

Su valor cambia durante la ejecución de un programa.

Su valor no cambia durante la ejecución de un programa.

Colas

Es una estructura lineal, donde el primer elemento que se inserta es el ultimo que se elimina. A este también se le conoce como LIFO.

Procesos básicos de las pilas

Sus conceptos básicos es: insertar y eliminar

¿Como saber que una esctrutura de codigo es una pila?^

Para saber que es una pila, primeramente debemos ver el: Cima, el top y el tope()

¿Como se pueden manejar las pilas?

Estos se pueden manejar con arreglos y con stack().

Es una estructura lineal donde el primer valor que se inserta es el primero que se elimina. También se le conoce como FIFO

¿Como saber si una estructura de código es una cola?

Para saber si una estructura de codigo es una cola, se debe de tener en cuenta: I.F, Frente y Final, Front y Rear.

Las colas se pueden manejar con: Arreglos y con Queue().

¿Como se pueden manejar las colas?^

Procesos básicos de las colas^

Los procesos básicos son: Insertar y Eliminar.

Clasificación de las colas

La clasificación de las colas, es la siguiente: Cola simple, Cola doble, Cola circular.

Son una estructura lineal, que almacena una colección de elementos(Nodos), donde estos apuntan hacia otros nodos ya que pueden almacenar datos y ligas; las ligas se les conoce como anterior y siguiente. A las listas enlazadas tambien se les conoce como Listas Encadenadas o Listas Ligadas.

Clasificación de Listas Enlazadas

Las Listas Enlazadas se clasifican, en: Lista Enlazada simple, Lista Enlazada Doble, Lista Enlazada Circular, y Lista Enlazada Doble Circular.

Un arreglo(Matriz), es una colección ordenada de datos(tanto primitivos u objetos dependiendo del lenguaje). Se emplean para almacenar múltiples valores en una sola variable, frente a la variables que solo pueden almacenar un valor(por cada variable).

¿Que es un algoritmo recursivo?

¿Que es una estructura tipo árbol?

¿Que es una estructura tipo grafo?

Un algoritmo recursivo es un algoritmo que se define en términos de sí mismo, es decir, que utiliza la recursión para resolver un problema. En lugar de resolver el problema de forma directa, el algoritmo se divide en subproblemas más pequeños que se resuelven utilizando el mismo algoritmo, pero con una entrada más pequeña.

En un algoritmo recursivo, la solución del problema se divide en un caso base y un caso recursivo. El caso base es el problema más simple que se puede resolver directamente sin aplicar la recursión. El caso recursivo se refiere a la solución del problema utilizando la recursión, donde se resuelve el problema original dividiéndolo en uno o más subproblemas más pequeños, que se resuelven utilizando la misma función recursiva.

Una estructura tipo árbol es una estructura de datos que consiste en un conjunto de nodos conectados entre sí de forma jerárquica. Cada nodo en un árbol tiene un padre (excepto el nodo raíz) y cero o más hijos, que pueden ser hojas o nodos internos. Los nodos internos representan una subdivisión del problema en subproblemas más pequeños, mientras que las hojas representan los casos base o soluciones finales.

Una estructura tipo grafo es una estructura de datos que se utiliza para representar un conjunto de objetos, llamados nodos o vértices, que están conectados entre sí por medio de aristas o enlaces. Los grafos se utilizan comúnmente para modelar relaciones entre objetos o elementos, como redes de comunicación, relaciones sociales, rutas de transporte, y muchos otros.

Un grafo puede ser dirigido o no dirigido, dependiendo de si las aristas tienen una dirección asociada. En un grafo dirigido, las aristas tienen una dirección unidireccional, mientras que en un grafo no dirigido las aristas no tienen dirección y se pueden recorrer en ambas direcciones.

Además, los grafos pueden ser ponderados o no ponderados, dependiendo de si las aristas tienen un peso o valor asociado. En un grafo ponderado, cada arista tiene un valor que indica algún tipo de relación o costo entre los nodos que conecta.

¿Que es la recursividad?

Se puede hablar de la recursividad, como funciones que se llaman a si misma, es decir, que para encontrar su resultado llaman su mismas.

Ejemplos

Factoriales

Nos hablan del caso de las factoriales, en las cuales para encontrar la factorial de por ejemplo (5!), se debe de multiplicar a este de la siguiente manera (5x4x3x2x1). Asi mismo no hablan del caso del factorial de (4!), en el cual para encontrarlo debemos de multiplicar (4x3x2x1).

Como podemos ver anteriormente, en el factorial de (5!) estan todos los numeros del factorial de (4!), por esto podemos decir que el factorial de 5!=5x4!.

como pudimos ver con este ejemplo, para encontrar el factorial de un numero se esta llamando a si mismo su definicion, como podemos ver en la siguiente formula (factorial(N)= N*factorial(N-1)), es decir, que para encontrar el factorial de un numero(N), se debe de multiplicar este numero por el factorial de este numero menos uno.

Negativa de la cursividad

su negativa, es que si no se pone un limite, este puede seguir hasta al infinito, pero si por ejemplo, le ponemos un limite, como llegar hasta a (0), este inconveniente ya no estara.

Lo mejor de la recursividad, es que nos permite hacer diferentes algoritmos funcionales dentro de la programacion, en los cuales se usen muchas veces lo mismo.

Positividad de la cursividad

Fibonachi

La secuencia fibonachi es muy parecida a los factoriales. su mayor diferencia es que su ecuacion es la siguiente (fibonacci(N)=fibonacci(N-1)+fibonacci(N-2)), es decir, que el numero(N) es igual a la suma de los dos numeros anteriores a este.

Por ejemplo, se comienza con (01), luego sigue de esta manera (0112358132134), es decir, el numero siguiente es el resultante de los numeros anteriores a este, asi: 01=1, 011=2, 0112=3, 01123=5, 011235=8; y asi sucesivamente.