# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1254134924 7200
# Node ID 32baeb8e5c8fc2cec7dd167588af17a1777b3c8b
# Parent fb93895f84d9050f68f4e9db6f3d70da4038be69
Modify the implementation of ListDigraph::ArcIt (#311)
The new implementation is based on outarc iteration (like
ListGraph::ArcIt) instead of inarc iteration to make it
consistent with the documentation.
diff git a/lemon/list_graph.h b/lemon/list_graph.h
a

b


116  116  void first(Arc& arc) const { 
117  117  int n; 
118  118  for(n = first_node; 
119   n!=1 && nodes[n].first_in == 1; 
 119  n != 1 && nodes[n].first_out == 1; 
120  120  n = nodes[n].next) {} 
121   arc.id = (n == 1) ? 1 : nodes[n].first_in; 
 121  arc.id = (n == 1) ? 1 : nodes[n].first_out; 
122  122  } 
123  123  
124  124  void next(Arc& arc) const { 
125   if (arcs[arc.id].next_in != 1) { 
126   arc.id = arcs[arc.id].next_in; 
 125  if (arcs[arc.id].next_out != 1) { 
 126  arc.id = arcs[arc.id].next_out; 
127  127  } else { 
128  128  int n; 
129   for(n = nodes[arcs[arc.id].target].next; 
130   n!=1 && nodes[n].first_in == 1; 
 129  for(n = nodes[arcs[arc.id].source].next; 
 130  n != 1 && nodes[n].first_out == 1; 
131  131  n = nodes[n].next) {} 
132   arc.id = (n == 1) ? 1 : nodes[n].first_in; 
 132  arc.id = (n == 1) ? 1 : nodes[n].first_out; 
133  133  } 
134  134  } 
135  135  