<< add_edge Arêtes - Arcs arc_number >>

metanet >> metanet > Arêtes - Arcs > adj_lists

adj_lists

calcule des listes d'adjacence

Séquence d'appel

[lp,la,ls] = adj_lists(g)
[lp,la,ls] = adj_lists(oriented,n,tail,head)

Paramètres

g

graphe (liste)

oriented

entier, 0 (graphe non-orienté) ou 1 (graphe orienté)

n

entier, le nombre de sommets du graphe

tail

le vecteur ligne des numéros des sommets origines du graphe (sa taille est égale au nombre d'arêtes du graphe)

head

le vecteur ligne des numéros des sommets extrémités du graphe (sa taille est égale au nombre d'arêtes du graphe)

lp

vecteur ligne, tableau de pointeurs de la description du graphe sous forme de liste d'adjacence (sa taille est égale au nombre de sommets du graphe + 1)

la

vecteur ligne, tableau d'arcs de la description du graphe sous forme de liste d'adjacence (sa taille est égale au nombre d'arêtes du graphe)

ls

vecteur ligne, tableau de sommets de la description du graphe sous forme de liste d'adjacence (sa taille est égale au nombre d'arêtes du graphe)

Description

adj_lists calcule le vecteur ligne de la description du graphe g sous forme de liste d'adjacence. Il est aussi possible de donner adj_lists, la description du graphe donnée par le nombre de sommets n ainsi que les vecteurs lignes tail et head.

Exemples

ta=[2 3 3 5 3 4 4 5 8];
he=[1 2 4 2 6 6 7 7 4];
g=make_graph('foo',1,8,ta,he);
g.nodes.graphics.x=[129 200 283 281 128 366 122 333];
g.nodes.graphics.y=[61 125 129 189 173 135 236 249];
g.nodes.graphics.display='number';
g.edges.graphics.display='number';

show_graph(g);
//directed graph
[lp,la,ls]=adj_lists(g)
[lp,la,ls]=adj_lists(1,g.nodes.number,ta,he)
for k=1:node_number(g)
  sel=lp(k):(lp(k+1)-1);
  g1=g;
  g1.nodes.graphics.colors(2,k)=color('red');
  g1.edges.graphics.foreground(la(sel))=color('green');
  g1.nodes.graphics.colors(1,ls(sel))=color('red');
  show_graph(g1);
  halt() 
end

//non directed graph
g.directed=0;
[lp,la,ls]=adj_lists(g);
for k=1:node_number(g)
  sel=lp(k):(lp(k+1)-1);
  g1=g;
  g1.nodes.graphics.colors(2,k)=color('red');
  g1.edges.graphics.foreground(la(sel))=color('green');
  g1.nodes.graphics.colors(1,ls(sel))=color('red');
  show_graph(g1);
  halt()
end

Voir Aussi


Report an issue
<< add_edge Arêtes - Arcs arc_number >>