[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [igraph] How can i add the edges?

**From**: |
Gábor Csárdi |

**Subject**: |
Re: [igraph] How can i add the edges? |

**Date**: |
Sat, 20 Feb 2010 09:53:27 +0100 |

Hi!
On Sat, Feb 20, 2010 at 12:48 AM, Vladimir Petrov <address@hidden> wrote:
>* Hello!*
>
>* I have a problem with edges*
>
>* /*file igraph_add_edges.c from "sample" folder*/*
>
>* igraph_t g;*
>* igraph_vector_t v;*
>* int ret;*
>
>* /* Create graph */*
>* igraph_vector_init(&v, 8);*
>* VECTOR(v)[0]=0; VECTOR(v)[1]=1;*
>* VECTOR(v)[2]=1; VECTOR(v)[3]=2;*
>* VECTOR(v)[4]=2; VECTOR(v)[5]=3;*
>* VECTOR(v)[6]=2; VECTOR(v)[7]=2;*
>* igraph_create(&g, &v, 0, 1);*
>
>* /* Add edges */*
>* igraph_vector_resize(&v, 4);*
>* VECTOR(v)[0]=2; VECTOR(v)[1]=1; // <--- What does it mean?*
>* VECTOR(v)[2]=3; VECTOR(v)[3]=3;*
>* igraph_add_edges(&g, &v, 0);*
>
>* /*************************/*
>* A quote from "igraph_create" function help:*
>* "const igraph_vector_t *edges*
>* The edges to add, the first two elements are the first edge, etc."*
>
>* What does it mean "first edge"? The edge between what vertexes?*
Exactly. An edge is a pair of vertices. Ordered in the directed case,
unordered in the nondirected case.
>* What should i write if i want, for example, add an edge between*
>* second and fifth vertexes? Or create self-loop on 8th vertex?*
>
>* What sense does have statement "VECTOR(v)[2]=3"? The edges from vertex*
>* number "2" to vertex number "3"?*
There is a misunderstanding here. igraph_add_edges takes a vector and
the elements of that vector define the edges to add. E.g. if you have
[2,5,8,8] in your vector, then two edges will be added, one from
vertex 2 to vertex 5, and one from vertex 8 to itself. The format is
the same as for the 'edges' argument in the 'igraph_create' function.
[...]
--
Gabor Csardi <address@hidden> UNIL DGM