PROYECTOS ALGORITMIA "METODOS DE ORDENACIÓN"
Enviado por alexlopeztello • 20 de Noviembre de 2019 • Trabajos • 1.845 Palabras (8 Páginas) • 131 Visitas
#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include <time.h>
#include <limits.h>
#include <string.h>
#include <stdlib.h>
#define INFINITY 9999
#define MAX 10
#define MAX2 100
#define INICIAL 1
#define ESPERANDO 2
#define VISITADO 3
//Matriz de adyacencia general
int G[MAX][MAX];
//Cantidad de nodos
int n;
// Funciones 'Dijkstra'
void entradaDatosDijkstra();
void dijkstra(int G[MAX][MAX],int n,int startnode, char Nombres[MAX]);
int indiceNodo(char Nombres[MAX],char c, int n);
// Funciones, estructuras y variables 'Kruskal'
void entradaDatosKruskal();
typedef struct edge
{
int u,v,w;
}edge;
typedef struct edgelist
{
edge data[MAX];
int n;
}edgelist;
edgelist elist;
edgelist spanlist;
void kruskal();
int find(int belongs[],int vertexno);
void union1(int belongs[],int c1,int c2);
void sort();
void printSubGrafo(char Nombres[MAX]);
//Variables y funciones 'Prim'
int spanning[MAX][MAX];
int prims();
void entradaDatosPrim();
// Variables y funcion ´Primero en Profundidad´ (DFS)
void entradaDatosDFS();
void DFS(int, int, char Nombres[MAX]);
int visited[10];
// Funciones 'Primero en anchura' (BFS)
int adj[MAX2][MAX2];
int state[MAX2];
void create_graph();
void BF_Traversal();
void BFS(int v);
int queue[MAX2], front = -1,rear = -1;
void insert_queue(int vertex);
int delete_queue();
int isEmpty_queue();
void entradaDatosBFS();
//Bellman-Ford
struct Edge
{
int source, destination, weight;
};
struct Graph
{
int V, E;
struct Edge* edge;
};
struct Graph* createGraph(int V, int E)
{
struct Graph* graph = (struct Graph*) malloc( sizeof(struct Graph));
graph->V = V;
graph->E = E;
graph->edge = (struct Edge*) malloc( graph->E * sizeof( struct Edge ) );
return graph;
}
void FinalSolution(int dist[], int n);
void BellmanFord(struct Graph* graph, int source);
void entradaDatosBellman();
/*FUNCION QUE AYUDA A CONTROLAR EL PUNTERO*/
void gotoxy(int x, int y){
HANDLE hCon;
COORD dwPos;
dwPos.X = x;
dwPos.Y = y;
hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hCon,dwPos);
}
/*FUNCION ESPECIFICA DEL MARCO GRAFICO*/
marco (int x1,int y1,int x2,int y2,int c1,int c2){
for(int i=x1+1;i<x2; i++){
gotoxy(i,y1);printf("%c",c1);
gotoxy(i,y2);printf("%c",c1);
}
for(int i=y1+1;i<y2;i++){
gotoxy(x1,i);printf("%c",c2);
gotoxy(x2,i);printf("%c",c2);
}
gotoxy(x1,y1);printf("%c",201);
gotoxy(x2,y1);printf("%c",187);
gotoxy(x1,y2);printf("%c",200);
gotoxy(x2,y2);printf("%c",188);
...