1
<programlisting linenumbering="numbered"><emphasis>/* -*- mode: C -*- */</emphasis>
2
<emphasis>/* </emphasis>
3
<emphasis> IGraph library.</emphasis>
4
<emphasis> Copyright (C) 2010-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>
25
<emphasis role="strong">#include</emphasis> <stdio.h>
27
int <emphasis role="strong">main</emphasis>() {
30
igraph_vector_ptr_t separators;
33
<emphasis role="strong"><link linkend='igraph_famous'>igraph_famous</link></emphasis>(&graph, "zachary");
34
<emphasis role="strong"><link linkend='igraph_vector_ptr_init'>igraph_vector_ptr_init</link></emphasis>(&separators, 0);
35
<emphasis role="strong"><link linkend='igraph_all_minimal_st_separators'>igraph_all_minimal_st_separators</link></emphasis>(&graph, &separators);
37
n=<emphasis role="strong"><link linkend='igraph_vector_ptr_size'>igraph_vector_ptr_size</link></emphasis>(&separators);
38
<emphasis role="strong">for</emphasis> (i=0; i<n; i++) {
40
<link linkend='igraph_vector_t'>igraph_vector_t</link> *sep=<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(separators)[i];
41
<emphasis role="strong"><link linkend='igraph_is_separator'>igraph_is_separator</link></emphasis>(&graph, <emphasis role="strong"><link linkend='igraph_vss_vector'>igraph_vss_vector</link></emphasis>(sep), &res);
42
<emphasis role="strong">if</emphasis> (!res) {
43
<emphasis role="strong">printf</emphasis>("Vertex set %li is not a separator!\n", i);
44
<emphasis role="strong">igraph_vector_print</emphasis>(sep);
45
<emphasis role="strong">return</emphasis> 1;
49
<emphasis role="strong"><link linkend='igraph_destroy'>igraph_destroy</link></emphasis>(&graph);
50
<emphasis role="strong">for</emphasis> (i=0; i<n; i++) {
51
<link linkend='igraph_vector_t'>igraph_vector_t</link> *v=<emphasis role="strong"><link linkend='VECTOR'>VECTOR</link></emphasis>(separators)[i];
52
<emphasis role="strong"><link linkend='igraph_vector_destroy'>igraph_vector_destroy</link></emphasis>(v);
53
<emphasis role="strong">igraph_Free</emphasis>(v);
55
<emphasis role="strong"><link linkend='igraph_vector_ptr_destroy'>igraph_vector_ptr_destroy</link></emphasis>(&separators);
57
<emphasis role="strong">return</emphasis> 0;