Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - verakra

#1
DE CASUALIDAD ALGUNO TIENE ENLACES O LIBROS, O PDF, QUE ME PUEDAN FACILITAR, PORQUE TENGO UNOS PERO CREO QUE SON MUY VIEJOS ,Y PUEDO CONSIDERARLOS OBSOLETOS
#2
BUENO EXPLICO MI CASO, ESTOY INTENTANDO HACER UNA FUNCION QUE ME INSERTE UNA ARISTA  PARA HACER UN BFS ,ESTA MI FUNCION Y CUANDO LO LLAMO EN EL MAIN CON DO WHILE, LO QUE SUCEDE ES QUE CUANDO QUIERO INSERTAR UNA ARISTA DE UN VERTICE A OTRO , ME SALE QUE EL PROGRAMA DEJO FUNCIONAR, ENTONCES NOSE SE TENGO ALGUN ERROR AL CODIFICAR O UN ERROR LOGICO, POR FAVOR UN ILUMINADO QUE ME AYUDE A RESOLVER ESTE DILEMA

Código (cpp) [Seleccionar]
void Grafo::InsertarArista(Vertice *origen, Vertice *destino)
{
Arista *nueva = new Arista;
nueva->sig=NULL;
nueva ->ady=NULL;

Arista *aux;
aux = origen->ady;

if(aux==NULL)
{
origen->ady = nueva;
nueva->ady = destino;
}
else
{
while (aux !=NULL)
{
aux=aux->sig;

  }
 
  aux->sig = nueva;
  nueva->ady=destino;
  }
}




Código (cpp) [Seleccionar]
case 2:
        {
            string origen, destino;
            system("cls");
            if(G.vacio())
            {
                cout<<"El grafo esta vacio"<<endl;
            }
            else
            {
                cout<<"Ingrese del nombre del vertice origen: ";
                cin.ignore();
                getline(cin, origen, '\n');
                cout<<"Ingrese el nombre del vertice destino: ";
                getline(cin, destino, '\n');
                system("cls");
             
                if(G.GetVertice(origen) == NULL || G.GetVertice(destino) == NULL)
                {
                    cout<<"Uno de los vertices no es valido"<<endl;
                }
                else
                {
                    G.InsertarArista(G.GetVertice(origen), G.GetVertice(destino));//, peso);
                }
            }
            cin.get();
            cin.get();
            break;
        }
#3
ESTE ES MI CODIGO LE INGRESO UNA MATRIZ DE NxN de un GRAFO NO DIRIGIDO, LO QUE NECESITO QUE ME AYUDEN ES COMO HAGO PARA RECORRER ESA MATRIZ Y DECIR SI EL GRAFO ES CONEXO O NO


TEORIA GRAFO CONEXO
un grafo es conexo si existe un camino de un nodo hacia cualquier otro nodo del grafo

Código (java) [Seleccionar]

package matriz_adyacencia;



/**
*
* @author PAPAYO
*/
public class Matriz_Adyacencia {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Matriz_de_adyacencia matriz = new Matriz_de_adyacencia(5);
               
       
        matriz.agregar(0, 1);
        matriz.agregar(0, 1);
        matriz.agregar(0, 2);
        matriz.agregar(0, 3);
       
        matriz.agregar(1, 0);
        matriz.agregar(1, 0);
        matriz.agregar(1, 4);
       
        matriz.agregar(2, 0);
        matriz.agregar(2, 3);
        matriz.agregar(2, 4);
       
        matriz.agregar(3, 0);
        matriz.agregar(3, 2);
       
        matriz.agregar(4, 1);
        matriz.agregar(4, 2);
        matriz.agregar(4, 4);
        matriz.agregar(4, 4);
       
       
       
        matriz.imprimir();
       
       
       
       

    }
       
       
    }



Código (java) [Seleccionar]
package matriz_adyacencia;

public class Matriz_de_adyacencia {
   
    public int n;
    public int[][] matriz;
   
    /**
     * Constructor de clase
     * @param n numero de nodos
     */
    public Matriz_de_adyacencia(int n) {
        this.n = n;
        matriz = new int[this.n][this.n];
        //se inicializa matriz en 0
        for(int i=0; i< n; i++){
            for(int j=0; j< n; j++){
                matriz[i][j] = 0;
            }           
        }
    }
   
    public void agregar(int i, int j){
        matriz[i][j] += 1;
    }
   
    public void remover(int i, int j){
        if(matriz[i][j]>0)
            matriz[i][j] -= 1;
    }
   
    public void imprimir(){
        for(int i=0; i< n; i++){
            for(int j=0; j< n; j++){
                System.out.print( matriz[i][j] + "  " );       
            }
            System.out.println("");
           
        } 
    }
   
 

   
}


ESPERO QUE ME AYUDEN GRACIASS
#4
Programación C/C++ / Codigo Grafos C++
5 Septiembre 2019, 20:49 PM
sabe alguno comO implementar o como programar esto,SON GRAFOS

1. (Si UN GRAFO es completamente conexo.
2. (Si tiene camino o circuito de Hamilton o ambos
3. (Si tiene camino o circuito de Euler o ambos
4. ( Ingresar los datos de dos vértices e indique cual es el camino más cortos entre
ellos.
#5
HE BUSCADO EN VARIAS PARTES Y NO HE PODIDO DAR CON UNA SOLUCION


:-( :-(

->Construya el AFN que reconozca el lenguaje de todas las cadenas en base 3 que pueden
iniciar en 00 o 22, deben contener 021 y terminar en 11, posteriormente conviertalo en un AFD. Dibuje
los automatas y muestre la tabla de transicion de estados, as como el proceso de conversIon.


-> Es posible construir un AFN con 3 estados que reconozca el lenguaje vacIo?
#6
Algun alma caritativa que me ayude a Encontrar el Error ;D ;D


C:\Users\USUARIO\Desktop\collect2.exe   [Error] ld returned 1 exit status

Código (cpp) [Seleccionar]
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;

struct nodo {
int dato;
nodo * der;
nodo* iz;
};

nodo *crearNodo(int);
void insertar_nodo (nodo *&, int);
void menu();
void mostrarArbol(nodo,int);
nodo *arbol = NULL;
int main() {

menu();


return 0;
}

void menu(){
int dato,opcion,contador = 0;
do {

cout<<"Menus: "<<endl;
cout<<"1. Insertar un nuevo nodo: "<<endl;
cout<<"2. Mostar arbol Completo:  "<<endl;
cout<<"3. Salir"<<endl;
cin>>opcion;
void mostarArbol(nodo*,int);

switch (opcion){
case 1 : cout<<"digite Numero: ";
cin >> dato;
insertar_nodo (arbol , dato);
cout<<"";
system("PAUSE");
break;
case 2:  cout<<"Arbol";
mostarArbol(arbol,contador);
system ("PAUSE");
break;
}
system ("cls");
}while (opcion = !3);
}





nodo *crearNodo(int n){
nodo *nuevo_nodo = new nodo();


}

void insertar_nodo (nodo *& arbol,int n){
if (arbol == NULL){

nodo *nuevo_nodo = crearNodo(n);
arbol = nuevo_nodo;
}else {
int valorRaiz = arbol ->dato;

if(n < valorRaiz){
insertar_nodo (arbol ->iz,n);
}
else{
insertar_nodo (arbol->der,n);
}
}
}

void mostrarArbol(nodo *arbol,int cont){
if (arbol == NULL){
return;
}else {
mostrarArbol(arbol->der,cont+1);
for(int i=0;i<cont;i++){

cout<<"  ";
}
cout << arbol ->dato<<endl;
mostrarArbol(arbol->iz,cont+1);
}

}
#7
Programación C/C++ / Algoritmo de marshall
21 Marzo 2019, 04:56 AM
he investigado y leido sobre el algoritmo pero no encuentro las manera de como implementarlo en C++, si alguien sabe su ayuda seria de mucha ayuda

#8
Programación C/C++ / programacion de grafos
21 Marzo 2019, 04:45 AM
soy un poco nuevo en programacion y deseo saber como se puede hacer el ejemplo