L
@Leroy58
Algoritmo Kruskal
class UnionFind:
def __init__(self, elementos):
"""
Inicializa la estructura Union-Find.
:param elementos: Iterable que contiene los elementos (nodos) del grafo
"""
self.padre = {elemento: elemento for elemento in elementos}
self.rango = {elemento: 0 for elemento in elementos}
Algoritmo Prim
import heapq
def prim(grafo):
"""
Implementación del Algoritmo de Prim para encontrar el árbol generador mínimo.
:param graph: Diccionario que representa el grafo ponderado conexo no dirigido,
donde las claves son los nodos y los valores son listas de tuplas (vecino, peso)
:return: Lista de aristas que forman el árbol generador mínimo
"""
Algoritmo Dijkstra
def Dijkstra(grafo, origen, destino):
"""
Implementación del algoritmo de Dijkstra para encontrar el camino más corto entre un nodo origen y un nodo destino en un grafo ponderado.
Parámetros:
- grafo: Un diccionario que representa el grafo ponderado. Las claves son los nodos del grafo y los valores son diccionarios que contienen los nodos adyacentes como claves y sus respectivos pesos como valores.
- origen: El nodo de origen desde el cual se inicia la búsqueda del cami
fibonacciRecursivo
#include <iostream>
using namespace std;
int fibonacci(int num) {
if (num == 0) return 0;
else if (num == 1) return 1;
return fibonacci(num - 1) + fibonacci(num - 2);
}
fibonacci
#include <iostream>
using namespace std;
int main() {
// Declaración de a y b con los valores iniciales
int a = 0, b = 1;
// Se imprime a y b
cout << a << ", " << b;
// Se imprimen los siguientes 18 números
for (int contador = 1; contador <= 18; contador++) {
signoZodiacal
#include <iostream>
using namespace std;
bool validarFecha(int dia, int mes) {
if (dia < 1 || dia > 31) {
return false;
} else if (mes < 1 || mes > 12) {
return false;
} else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {