TP2 Python : Graphes P. Vanier, T. Kaced
TP2 Python : Graphes
Exercice 1. Écrivez une classe Graphe qui aura :
Comme variable statique privée N, le nombre d’objets graphe qui existent actuellement
(il faut prendre en compte ceux qui ont été détruits aussi)
Comme variables privées :
le nombre de sommets,
un dictionnaire qui contiendra dans l’indice correspondant à chaque sommet une
liste des sommets qui lui sont adjacents.
Comme méthodes :
ajout_sommet(nom) pour ajouter un sommet
ajout_arete(s1,s2) pour ajouter une arête de i à j.
ajout_aretes(liste) pour ajouter une liste d’arêtes.
supprimer_sommet(s)
supprimer_sommets(liste)
supprimer_arete(s1,s2)
supprimer_sommets(liste)
Exercice 2. Rendez cette classe itérable : l’itération doit renvoyer les sommets du graphe un à
un.
Exercice 3. Écrivez un générateur aretes(s) qui énumère les arêtes sortant du sommet s.
1 Graphe de pages web
On veut maintenant construire le graphe des relations entre certaines pages web :
pages =["http://uncyclopedia.wikia.com/wiki/My_Yu-Gi-Oh!_collection",
"http://uncyclopedia.wikia.com/wiki/Awesome",
"http://uncyclopedia.wikia.com/wiki/Clothes",
"http://uncyclopedia.wikia.com/wiki/World_War_2",
"http://uncyclopedia.wikia.com/wiki/World_War_1",
"http://uncyclopedia.wikia.com/wiki/Charles_de_Gaulle",
"http://uncyclopedia.wikia.com/wiki/French",
"http://uncyclopedia.wikia.com/wiki/Surrender",
"http://uncyclopedia.wikia.com/wiki/Asterix",
"http://uncyclopedia.wikia.com/wiki/French_Military"
"http://uncyclopedia.wikia.com/wiki/Cheese"
]
Une page sera représentée par un nœud et il y aura une arête du nœud correspondant à
la page p1au nœud correspondant à la page p2si il existe un lien hypertexte dans p1dont le
champ href est l’adresse de p2.
Exercice 4. En utilisant requests et beautifulsoup4 , construisez un objet Graphe qui
contient le graphe des pages web de la liste pages .
M1 Python – Cours : P. Vanier 1/2
TP2 Python : Graphes P. Vanier, T. Kaced
Exercice 5. À l’aide d’un algorithme de plus court chemin, trouvez le chemin le plus court
(nempruntant que des liens commençant par http://uncyclopedia.wikia.com) entre les pages
suivantes :
p1 ="http://uncyclopedia.wikia.com/wiki/Captain_Obvious"
p2 ="http://uncyclopedia.wikia.com/wiki/HowTo:Fix_a_computer"
M1 Python – Cours : P. Vanier 2/2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !