Beispiel #1
0
int Arbin<Elem>::profundidad(Nodo * arbol) const
{
    if (arbol == NULL) {
        return 0;
    } else {
        return (1 + max(profundidad(arbol->subIzquierdo), profundidad(arbol->subDerecho)));
    }
}
Beispiel #2
0
int profundidad(struct nodo * raiz){
	int profIzq,profDer;
	if(raiz != NULL){
		profIzq = profundidad(raiz->izquierdo);
		profDer = profundidad(raiz->derecho);
		if(profIzq > profDer)
			return profIzq+1;
		else
			return profDer+1;
	}
	else
		return 0;
}
Beispiel #3
0
void ondas_c (
	unsigned char *src,
	unsigned char *dst,
	int m,
	int n,
	int row_size,
	int x0,
	int y0
) {
	unsigned char (*src_matrix)[row_size] = (unsigned char (*)[row_size]) src;
	unsigned char (*dst_matrix)[row_size] = (unsigned char (*)[row_size]) dst;

	float new_pixel;

	float prof;

	for (int i = 0; i<m; i+=1) {
		for (int j = 0; j<n; j+=1) {
			prof = profundidad(i, j, x0, y0);

			new_pixel = (prof * 64.0) + (float) src_matrix[i][j];

			new_pixel = new_pixel <   0.0 ?   0.0 : new_pixel;
			new_pixel = new_pixel > 255.0 ? 255.0 : new_pixel;

			dst_matrix[i][j] = (unsigned char) new_pixel;
		}
	}
}
Beispiel #4
0
int main(int argc, char *argv[]) {
	setlocale(LC_ALL, "");
	int s = 1,opc = 0, contador = 0;
	while(s){
		system("cls");
		printf("Árbol binario (Doble apuntador)");
		printf("\nSelecciona una opción");
		printf("\n1) Meter datos");
		printf("\n2) Imprimir en preorden");
		printf("\n3) Imprimir en inorden");
		printf("\n4) Imprimir en postorden");
		printf("\n5) Imprimir todo");
		printf("\n6) Obtener la profundidad del árbol");
		printf("\n7) Eliminar datos");
		printf("\n8) Buscar");
		printf("\n9) Salir\n");
		scanf("%d",&opc);
		switch(opc){
			case 1:
				printf("\nInserta un valor: ");
				scanf("%d", &valor);
				system("cls");
				insertar();
				break;
			case 2:
				preorden(raiz);
				getch();
				break;
			case 3:
				inorden(raiz);
				getch();
				break;
			case 4:
				postorden(raiz);
				getch();
				break;
			case 5:
				system("cls");
				printf("Valores del árbol:");
				imprimir(raiz,contador);
				getch();
				break;	
			case 6:
				printf("Profundidad: %d",profundidad(raiz));
				getch();
				break;
			case 7:
				printf("\nInserta un valor: ");
				scanf("%d", &valor);
				system("cls");
				eliminar(&raiz,valor);
				break;
			case 8:
				printf("\nInserta un valor: ");
				scanf("%d", &valor);
				system("cls");
				printf("Se encontró el valor %d",(buscar(raiz,valor))->dato);
				getch();
				break;
			case 9:
				s = 0;
				break;
			default:
				printf("Muy mal >:(");
				getch();
				break;
		}
	}
	system("cls");
	printf("Adiós");
	return 0;
}
Beispiel #5
0
int Arbin<Elem>::profundidad() const
{
    return profundidad(raiz);
}
Beispiel #6
0
int main(void)
{
 GRAFO g;
 int opcion;
 do
 {
  opcion = menu();
  switch (opcion)
  {
   case 1:
    introducirGrafo(&g);
    break;
   case 2: /*Algoritmo de Dijkstra */
    algoritmoDijkstra(g);

    getchar();
    getchar();
    getchar();
    break;

   case 3: /*Algoritmo de Floyd */
    algoritmoFloyd(g);

    getchar();
    getchar();
    getchar();
    break;

   case 4: /*Algoritmo de Prim */
    if (verTipoGrafo(g) == 'n')
     algoritmoPrim(g);
    else
     printf("El grafo es dirigido\n");

    getchar();
    getchar();
    getchar();
    break;

   case 5: /*Algoritmo de Kruskal */
    if (verTipoGrafo(g) == 'n')
     algoritmoKruskal(g);
    else
     printf("El grafo es dirigido\n");
     
    getchar();
    getchar();
    getchar();
    break;

  case 6: /* busqueda en profundidad */
    profundidad(g);
    getchar();
    getchar();
    break;

   case 7: /* busqueda en amplitud */
    amplitud(g);
    getchar();
    getchar();
    break;

  case 8: /* Clasificación Topológica */
   if (verTipoGrafo(g) == 'd')
    topologica(g);
   else
    printf("El grafo es no dirigido\n");
    
    getchar();
    getchar();
    break;

   case 9: /* Clasificación de los lados de grafo dirigido en base a la búsqueda en profundidad */
   if (verTipoGrafo(g) == 'd')
    tiposLados(g);
   else
    printf("El grafo es no dirigido\n");
    
    getchar();
    getchar();
    break;

  }
 }while (opcion != 0);
}