Kategorier: Alle - recursividad - colas - listas - arreglos

av Alejandro Lopez Aguilar 1 år siden

115

Estructuras dinámicas

Las estructuras de datos son fundamentales en programación y se clasifican en varias categorías. Las listas enlazadas pueden ser simples, dobles, circulares o doblemente circulares, y permiten almacenar elementos de manera dinámica.

Estructuras dinámicas

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.

Fibonachi

Positividad de la cursividad

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.

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.

Negativa de la cursividad

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.

Factoriales

Ejemplos

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

¿Que es la recursividad?

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.

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.

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.

¿Que es una estructura tipo grafo?

¿Que es una estructura tipo árbol?

¿Que es un algoritmo recursivo?

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).

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

Clasificación de Listas Enlazadas

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.

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

Clasificación de las colas

Los procesos básicos son: Insertar y Eliminar.

Procesos básicos de las colas

¿Como se pueden manejar las colas?

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

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

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

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

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

¿Como se pueden manejar las pilas?

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

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

Sus conceptos básicos es: insertar y eliminar

Procesos básicos de las pilas

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.

Colas

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

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

Listas lineales Estáticas

Listas lineales dinámicas

Listas enlazadas

Pilas

Arreglos

Estructuras dinámicas