<< Chemins - Cycles Chemins - Cycles circuit >>

metanet >> metanet > Chemins - Cycles > chain_struct

chain_struct

structure chaînée à partir d'une liste d'adjacence d'un graphe

Séquence d'appel

[fe,che,fn,chn] = chain_struct(g)
[fe,che,fn,chn] = chain_struct(lp,la,ls)

Paramètres

g

graphe (liste)

lp

vecteur ligne de pointeurs de la description du graphe sous forme de liste d'adjacence (sa taille est le 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 le 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 le nombre d'arêtes du graphe)

fe

vecteur ligne des numéros des premières arêtes partant des sommets (sa taille est le nombre de sommets du graphe)

che

vecteur ligne des numéros des arêtes chaînées (sa taille est le nombre d'arêtes du graphe)

fn

vecteur ligne des numéros des premiers sommets atteints par les arêtes de fe (sa taille est le nombre de sommets du graphe)

chn

vecteur ligne des sommets atteints par les arêtes de che

Description

chain_struct calcule les vecteurs lignes de la description par structure chaînée d'arêtes du graphe g. Il est aussi possible de donner directement chain_struct, la liste d'adjacence du graphe. Ceci est plus efficace si la liste d'adjacence est déjà disponible puisque chain_struct l'utilise pour faire les calculs.

Les vecteurs fe, che, fn et chn décrivent la structure chaînée de la manière suivante :

fe(i)) est le numéro de la première arête partant du sommet i,

che(fe(i)) est le numéro de la deuxième arête partant du sommet i, che(che(fe(i))) est le numéro de la troisième arête partant du sommet i et ainsi de suite jusqu'à ce que la valeur soit égale à 0.

fn(i) est le numéro du premier sommet atteint à partir du sommet i

ch(i) est le numéro du sommet atteint par l'arête che(i).

Exemples

ta=[1 1 2 3 5 4 6 7 7 3 3 8 8 5];
he=[2 3 5 4 6 6 7 4 3 2 8 1 7 4];
g=make_graph('foo',1,8,ta,he);
g.nodes.graphics.x=[116 231 192 323 354 454 305 155];
g.nodes.graphics.y=[118 116 212 219 117 185 334 316];
show_graph(g);
[fe,che,fn,chn] = chain_struct(g)
for i=1:node_number(g)
  hilite_nodes(i); xpause(1d6)
  cur=fe(i);while cur<>0;hilite_edges(cur);cur=che(cur);xpause(5d5);end

  unhilite_nodes(i);
  cur=fe(i);while cur<>0;unhilite_edges(cur);cur=che(cur);end
end

Voir Aussi


<< Chemins - Cycles Chemins - Cycles circuit >>