calcule des listes d'adjacence
[lp,la,ls] = adj_lists(g) [lp,la,ls] = adj_lists(oriented,n,tail,head)
graphe (liste)
entier, 0 (graphe non-orienté) ou 1 (graphe orienté)
entier, le nombre de sommets du graphe
le vecteur ligne des numéros des sommets origines du graphe (sa taille est égale au nombre d'arêtes du graphe)
le vecteur ligne des numéros des sommets extrémités du graphe (sa taille est égale au nombre d'arêtes du graphe)
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)
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)
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)
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
.
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 | ![]() | ![]() |