1
<programlisting linenumbering="numbered"><emphasis>/* -*- mode: C -*- */</emphasis>
2
<emphasis>/* </emphasis>
3
<emphasis> IGraph library.</emphasis>
4
<emphasis> Copyright (C) 2006-2012 Gabor Csardi </emphasis><csardi.gabor@gmail.com>
5
<emphasis> 334 Harvard st, Cambridge MA, 02139 USA</emphasis>
7
<emphasis> This program is free software; you can redistribute it and/or modify</emphasis>
8
<emphasis> it under the terms of the GNU General Public License as published by</emphasis>
9
<emphasis> the Free Software Foundation; either version 2 of the License, or</emphasis>
10
<emphasis> (at your option) any later version.</emphasis>
11
<emphasis> </emphasis>
12
<emphasis> This program is distributed in the hope that it will be useful,</emphasis>
13
<emphasis> but WITHOUT ANY WARRANTY; without even the implied warranty of</emphasis>
14
<emphasis> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</emphasis>
15
<emphasis> GNU General Public License for more details.</emphasis>
16
<emphasis> </emphasis>
17
<emphasis> You should have received a copy of the GNU General Public License</emphasis>
18
<emphasis> along with this program; if not, write to the Free Software</emphasis>
19
<emphasis> Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA </emphasis>
20
<emphasis> 02110-1301 USA</emphasis>
22
<emphasis>*/</emphasis>
24
<emphasis role="strong">#include</emphasis> <igraph.h>
26
void <emphasis role="strong">igraph_vector_print</emphasis>(<emphasis role="strong">const</emphasis> <link linkend='igraph_vector_t'>igraph_vector_t</link> *v) {
28
<emphasis role="strong">for</emphasis> (i=0; i<<emphasis role="strong"><link linkend='igraph_vector_size'>igraph_vector_size</link></emphasis>(v); i++) {
29
<emphasis role="strong">printf</emphasis>("%li ", (long int)<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(*v)[i]);
31
<emphasis role="strong">printf</emphasis>("\n");
34
int <emphasis role="strong">main</emphasis>() {
37
<emphasis role="strong">const</emphasis> <link linkend='igraph_vector_t'>igraph_vector_t</link> v=IGRAPH_VECTOR_NULL;
38
igraph_real_t edges1[] = { 0,1, 1,2, 2,2, 2,3, 2,4, 3,4 };
39
<link linkend='igraph_vector_t'>igraph_vector_t</link> from, to;
41
igraph_integer_t size;
44
<emphasis role="strong"><link linkend='igraph_vector_view'>igraph_vector_view</link></emphasis>(&v, edges1, <emphasis role="strong">sizeof</emphasis>(edges1)/<emphasis role="strong">sizeof</emphasis>(igraph_real_t));
46
<emphasis>/******************************************/</emphasis>
47
<emphasis>/* Directed graph */</emphasis>
48
<emphasis>/******************************************/</emphasis>
50
<emphasis role="strong"><link linkend='igraph_create'>igraph_create</link></emphasis>(&g, &v, 0, IGRAPH_DIRECTED);
52
<emphasis>/* {0,1} -> {2,3}, result should be { 1->2 } */</emphasis>
53
<emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&from, 2); <emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(from)[0]=0; <emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(from)[1]=1;
54
<emphasis role="strong"><link linkend='igraph_vector_init'>igraph_vector_init</link></emphasis>(&to, 2); <emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(to) [0]=2; <emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(to) [1]=3;
55
<emphasis role="strong"><link linkend='igraph_es_fromto'>igraph_es_fromto</link></emphasis>(&g, &it, <emphasis role="strong">IGRAPH_VS_VECTOR</emphasis>(&g, &from),
56
<emphasis role="strong">IGRAPH_VS_VECTOR</emphasis>(&g, &to), IGRAPH_DIRECTED);
57
<emphasis role="strong"><link linkend='igraph_vector_clear'>igraph_vector_clear</link></emphasis>(&from); <emphasis role="strong"><link linkend='igraph_vector_clear'>igraph_vector_clear</link></emphasis>(&to);
58
<emphasis role="strong"><link linkend='igraph_es_size'>igraph_es_size</link></emphasis>(&g, &it, &size);
59
<emphasis role="strong">printf</emphasis>("%ld\n", (long)size);
60
<emphasis role="strong">while</emphasis> (!<emphasis role="strong">igraph_es_end</emphasis>(&g, &it)) {
61
<emphasis role="strong"><link linkend='igraph_vector_push_back'>igraph_vector_push_back</link></emphasis>(&from, <emphasis role="strong">igraph_es_from</emphasis>(&g, &it));
62
<emphasis role="strong"><link linkend='igraph_vector_push_back'>igraph_vector_push_back</link></emphasis>(&to, <emphasis role="strong">igraph_es_to</emphasis>(&g, &it));
63
<emphasis role="strong">igraph_es_next</emphasis>(&g, &it);
65
<emphasis role="strong"><link linkend='igraph_vector_sort'>igraph_vector_sort</link></emphasis>(&from); <emphasis role="strong"><link linkend='igraph_vector_sort'>igraph_vector_sort</link></emphasis>(&to);
66
<emphasis role="strong">igraph_vector_print</emphasis>(&from); <emphasis role="strong">igraph_vector_print</emphasis>(&to);
68
<emphasis role="strong"><link linkend='igraph_es_destroy'>igraph_es_destroy</link></emphasis>(&it);
70
<emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&from);
71
<emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(&to);
73
<emphasis role="strong">return</emphasis> 0;