• Viernes 29 de Marzo de 2024, 07:19

Autor Tema:  Grafos!!!!!!!  (Leído 3372 veces)

Jugulator

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Grafos!!!!!!!
« en: Jueves 3 de Junio de 2004, 22:13 »
0
Estoy algo confundido, para la creación de grafos, sé como se pueden REPRESENTAR, ¿pero cómo los uno?, es decir, digamos que el usuario desea crear el nodo A, y luego el B, pero no quiere que haya conexión entre A yB y viceversa, pensé en hacerlo con una matriz de apuntadores algo como
apuntador A =♫->NULL
apuntador B =♫->NULL,
lo que quiero representar es que A y B son apuntadore, elementos de una matriz, pero ¿hay conexión entre A y B?,
luego CREO que tengo que crear otra matriz donde indique las conexiones entre nodos,
se me acaba de ocurrir algo, digamos que lleno toda la matriz de apuntadores digamos con 5 elementos
apuntador A =♫->NULL
apuntador B =♫->NULL,
apuntador C =♫->NULL
apuntador D =♫->NULL,
apuntador E =♫->NULL
al terminar la función de insertar nodos, creo otra matriz pero aquí ya nada más voy a representar los caminos entre estos....
   A B C D E
A 0 1  4 0  ..
B .. ..  .. .. ..
C
D
E
¿Qué opinan?
Gracias de antemano por su ayuda.

Jugulator

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #1 en: Jueves 3 de Junio de 2004, 22:50 »
0
Me parece patético las personas que vienen aquí con la cola entre los rabos...jajajajajaja
ADMINISTRADOR....por favor, durante un momento caí en la estupidez de los demás ....ayuda o cosas así, deberían estar avergonzados de llamarse programadores, además, AQUÍ la verdad no van a encontrar ningún apoyo, ya sea por X o Y, Moron el que dice "Ayuda con el programa...."pero MORON (Y SÍ ESTOY GRITANDO), el que dice "Aquí no le hacemos la tarea a nadie...."no creo que les estén pidiendo que la hagan en ese momento sino que tal vez ustedes ya la hicieron y tal vez la puedan rolar, de todas maneras ninguna de esas personas llegarán lejos, pero qué se puede hacer, lo único que puedo decir es que me averguenzo DE MÍ por creer que alguien me va ayudar de una manera un tanto humilde, idiota que soy, desde cuando debí aprender que en esto de la programación las personas son tan ermitaños que no sólo se encierran de manera física sino mental de todas maneras, gracias por el tutorial, no quiero ser un cabrón pero si 22 y tantos personas leen un mensaje y sólo uno se toma la molestia de constestar creo que SÍ están algo jodidos, sigan así sin importar si van bien o mal...y no intentén interpretar, mejor preguntén y dejen su conducta "JA, YO no te voy a hacer la tarea....."
Cuídense (sinceramente).

5erg10

  • Miembro activo
  • **
  • Mensajes: 42
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #2 en: Jueves 3 de Junio de 2004, 23:41 »
0
Me parece un tanto desproporcionada tu reacción, ten en cuenta que aunque lo hayan leido 22 personas (suponiendo que sean diferentes) no todas tienen por qué conocer la respuesta a tu problema.

De todas formas, por si lo necesita más gente, una forma de crear una estructura de datos que represente un grafo sería la siguiente:

En primer lugar, tenemos una lista de nodos, en la que se incluyen todos los elementos del grafo, por ejemplo:

A
B
C
D

Después, cada nodo además de tener un campo puntero que apunta al siguiente nodo, tendría otro campo puntero que apuntaría a otra lista exclusiva de cada nodo en la que se indicarían las relaciones con otros nodos, es decir, los nodos a los que está unido. Los elementos de estos nodos serían punteros a los nodos generales de la lista principal (para no tener en memoria elementos repetidos, solo guardamos sus direcciones)

Por ejemplo, si en el grafo anterior tenemos las siguientes relaciones: A->D, B->A, A->B, las listas quedarían así:

A: *D, *B
B: *A
C
D

Lo que quiere decir que la sublista de nodos relacionados con A contiene punteros a D y B, que son los nodos del grafo a los que está unido, y así con los demas.

Para añadir o quitar conexiones, simplemente sería añadir o quitar punteros de las sublistas de relaciones; para recorrer los grafos, simplemente sería añadir un campo booleano para ver si ya hemos pasado por un nodo o no, y recorrer la lista principal...

Bueno, esa es la forma que a mi me enseñaron hace unos años.
Welcome to the Jungle

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #3 en: Viernes 4 de Junio de 2004, 23:41 »
0
Tranquilo muchacho estas exagerado, y esa teoria de que los programadores son hermitaños es basura.
en fin, ya te lo conteste en otro post que hiciste.

TEnes que tener una lista de nodos, y una matriz de conexiones, es la forma mas facil.

saludos, agitador.
QliX=D! - From the top of Tsunami

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Grafos!!!!!!!
« Respuesta #4 en: Sábado 5 de Junio de 2004, 06:48 »
0
Citar
deberían estar avergonzados de llamarse programadores

Puede ser, pero por lo menos nosotros si podemos llamarnos a nosotros mismos "Programadores".....cosa que dudo mucho puedas hacer tu  :rolleyes:

El hecho de que 22 personas lean tu post, no implica que todos tengan que responderte.....algunos no sabrán la respuesta, otros simplemente no querrán responder y a otros, no les interesará en lo más mínimo tu pregunta.....Sobre todo si tienes ese tipo de reacciones.....  :scream:

Recuerda que este es un foro.....un lugar de ayuda.....Pero acaso.....¿Alguien nos paga, por ayudarte? ¿Estamos obligados a responder todo lo que nos preguntan? ¿Somos más o menos programadores por no responderte?

Creo que deberías irte a casa y reflexionar sobre tu ira y sobre todo, aprender a controlarte......... :lightsabre:

Saludos,

Blag  :devil:

Diabliyo

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #5 en: Lunes 7 de Junio de 2004, 06:33 »
0
Hola:

AQUI seria bueno que leyeras este tuto.

aqui te dejo al estructura de como se hace el Grafo por medio de: Listas

Código: Text
  1. struct grafo
  2.           {
  3.           int dato;
  4.           int vertices[N];
  5.           struct grafo *sig;
  6.           }*graf;
  7.  

Es como dice 5erg10, solo que CLARO...cada quien tiene su forma de pensar y hacer las cosas...asi que puedes tratar con esta estructura o pensarle de otra forma...

byeeeeeee

Jugulator

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #6 en: Miércoles 9 de Junio de 2004, 23:40 »
0
No pues sí....la verdad BLAG tiene razón...claro si es que aprendió a programar SOLO, la verdad BLAG eres mi heroe (de hecho todos son mis heroes)....
¿creen que nada más agarre y dije:"que rayos no tengo nada que hacer, los voy a insultar y a decir una sarta de estupideces"?, pues no, soy un sopenco (por andar pidiendo ayuda), pero no soy un SOPENCO, lo escribí y lo hago de nuevo...
no creo que las personas que estén pidiendo el código estén pensando que van a hacer ustedes la tarea en ese momento, se trata más bien de que si ya lo tienes pues rolalo, no creo que alguien sea TAN patán para pedir la tarea dos veces eso SÍ sería para mentar la m****, pero una vez a todos les pasa, ahora bien, son buenos para escrbir " hey  B) , áquí no le hacemos la tarea a nadie" como que les interesa dar a conocer lo sopenco que es uno si creen que se van a tomar el tiempo para ayudarle o rolar el programa, pero no les interesa un mensaje de ayuda, además tu pensamiento es algo no sé...no malo o bueno...pero muy soberbio "no nos pagan por ayudarte"...blag, si me vas a cobrar me cae de TM que pago si valiera la pena recibir una de tus clases, en serio lo haría pero creo que hasta para cobrar serías soberbio ¿te imaginas si en todos los foros hubieran personas que piensan como tú?, simple y sencillamente nadie ayudaría a nadie, pues porque no les pagan...además ESTOY en mi casa (no estoy "gritando"), en lo único en lo que te doy razón es acerca de si sé o no sé programar...las evidencias son OBVIAS no sé por eso pregunté, pero TÚ tienes razón, debo aprender SÓLO porque no le estoy pagando a nadie para que me enseñe...no, mejor TÚ sientate y piensa en lo que estoy escribiendo ....

Diabliyo

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #7 en: Jueves 10 de Junio de 2004, 07:46 »
0
Hola:

Bueno es un Foro de Dudas o de Jugar a la Papa Caliente ???...  ¡¡ Ya dejen de pelear !!   :kicking:  :lightsabre:  :blink:  :angry:

Ahi te va una exlicadina mas mejor que la anterior :D

Un grafo es un conjunto de nodos unidos entre si, no hay un inicio NI un fin, solo posibles caminos para llegar a determinado lugar....

Los Grafos se pueden hacer en forma de Matrizes de Adyacencia o por medio de Listas.... La forma que ami se me facilita mas, es en forma de Listas....  

Para formar un grafo debes tener: un PAR DE NODOS ( A y B ) los cuales llamaremos Vertices, y al unirlos ya sea de A --> B o de B --> A...a dicha union se le llama Enlaze...

Por lo tanto la estrcutura seria asi ( claro, es al gusto :D ):

Código: Text
  1. #define N 20
  2.  
  3. struct grafo
  4.           {
  5.           char letra;
  6.           char v[N];
  7.           struct grafo *sig;
  8.           }*raiz;
  9.  

Bueno aqui hariamos una lista enlazada de los Vertices ( nodos ), despues en la seccion Enlazes, el usuario los Enlaza... por ejemplo: el nodo: A, lo enlaza a: B, C, D, y E....entonces accedes al nodo A y en el array de cadena v[N], los agregas, asi de este modo iras creando un array de cadena de los vertices a los que se une el vertice A......

Aqui ahi DOS cosas mas: la lista esta LIMITADA, ya que #define N 20 indica que son Maximo 20 vertices ( nodos )..... Otra y ultima, debe inicializar al array   v[N]...

Código: Text
  1. for( i=0; i<N; i++ ) raiz->v[i]='\0';
  2.  


Si quieres mas sobre Matrizes de Adyasencia, entra AQUI
Espero haberte explicado bien...

byeee

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Grafos!!!!!!!
« Respuesta #8 en: Jueves 10 de Junio de 2004, 16:20 »
0
Citar
No pues sí....la verdad BLAG tiene razón...claro si es que aprendió a programar SOLO, la verdad BLAG eres mi heroe (de hecho todos son mis heroes)....

 :lol:  :lol:  :lol:

Citar
además tu pensamiento es algo no sé...no malo o bueno...pero muy soberbio "no nos pagan por ayudarte"...blag, si me vas a cobrar me cae de TM que pago si valiera la pena recibir una de tus clases, en serio lo haría pero creo que hasta para cobrar serías soberbio ¿te imaginas si en todos los foros hubieran personas que piensan como tú?, simple y sencillamente nadie ayudaría a nadie, pues porque no les pagan

 :lol:  :lol:  :lol:

Citar
mejor TÚ sientate y piensa en lo que estoy escribiendo ....

 :lol:  :lol:  :lol:


Deberías aprender a leer estando tranquilo, pues porque la verdad, parece que has mal intepretado todos mis comentarios. Y sip......Yo aprendí a programar solo......8 horas diarias sentado frente a la computadora, con muchos tutoriales y mucha perseverancia.

Citar
Bueno es un Foro de Dudas o de Jugar a la Papa Caliente ???... ¡¡ Ya dejen de pelear !!

Tienes toda la razón...... :smartass:

Jugulator

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #9 en: Viernes 11 de Junio de 2004, 22:30 »
0
Tal vez no esté tranquilo....pero sí sorprendido, además me encanta jugar a la papa caliente...pero más bien como que tú juegas al teléfono descompuesto...
¿así que aprendiste a programar solo?...solo....solo quiero decir que si usaste tutoriales recibiste la ayuda de alguien más...ayuda ES ayuda, no importa si usas el tutorial que alguien más escribió, aunque sea indirecta....mis disculpas para todos especialmente para tí Blag...pero tú no aprendiste a programar solo...estuviste s"ó"lo al momento de programar...pero eso es distinto...y cierro mi comentario...

el dudoso

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Grafos!!!!!!!
« Respuesta #10 en: Martes 29 de Junio de 2004, 23:51 »
0
tienes que usar recursividad ahh y otra cosa busca en internet que hay muchos programas gratis para bajar B)