Documente Academic
Documente Profesional
Documente Cultură
Raport
Disciplina: Matematica discretă
Lucrarea de laborator nr. 3
Tema: “ALGORITMUL DETERMINĂRII GRAFULUI DE ACOPERIRE”
Chişinău 2024
Cuprins
Cuprins........................................................................................................................................2
Listing-ul programului................................................................................................................4
Rezultatul în consolă...................................................................................................................7
Concluzie..................................................................................................................................10
Condiția problemei – Introducere
Listing-ul programului
import org.jgrapht.Graph;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.SimpleGraph;
import java.util.*;
while (true) {
switch (choice) {
case 1:
addEdge(graph);
break;
case 2:
displayGraph(graph);
break;
case 3:
displayIncidenceMatrix(graph);
break;
case 4:
displayAdjacencyMatrix(graph);
break;
case 5:
displayAdjacencyList(graph);
break;
case 6:
deleteEdge(graph);
break;
case 7:
deleteVertex(graph);
break;
depthFirstTraversal(graph);
break;
breadthFirstTraversal(graph);
break;
determineCoveringGraph(graph);
break;
case 0:
System.exit(0);
break;
default:
System.out.println("Optiune incorecta");
// Afisare meniu
System.out.println("0. Exit");
graph.addVertex(vertex);
if (!graph.containsEdge(source, target)) {
graph.addEdge(source, target);
} else {
if (source == target) {
if (!graph.containsEdge(source, source)) {
graph.addEdge(source, source);
} else {
}
// Metoda pentru a sterge o legatura dintre noduri
if (graph.containsEdge(source, target)) {
} else {
if (graph.containsVertex(source)) {
} else {
// Afisare graf
System.out.println("Matricea de incidență:");
int vertexIndex = 0;
int edgeIndex = 0;
if (vertex.equals(source)) {
incidenceMatrix[vertexIndex][edgeIndex] = -1;
} else if (vertex.equals(target)) {
incidenceMatrix[vertexIndex][edgeIndex] = 1;
} else {
incidenceMatrix[vertexIndex][edgeIndex] = 0;
edgeIndex++;
vertexIndex++;
System.out.println();
System.out.println("Matricea de adiacenta:");
System.out.println();
System.out.println("Lista de adiacenta:");
: graph.getEdgeSource(edge);
neighbors.add(neighbor);
// Afisam 0 la sfarsit
System.out.print("0");
System.out.println();
Set<Integer> visited) {
if (!visited.contains(currentVertex)) {
visited.add(currentVertex);
: graph.getEdgeSource(edge);
visited.add(startVertex);
queue.add(startVertex);
while (!queue.isEmpty()) {
: graph.getEdgeSource(edge);
if (!visited.contains(neighbor)) {
visited.add(neighbor);
queue.add(neighbor);
System.out.println("Nodul de startare:");
visited.add(startVertex);
queue.add(startVertex);
coveringGraph.addVertex(startVertex);
while (!queue.isEmpty()) {
: graph.getEdgeSource(edge);
if (!visited.contains(neighbor)) {
visited.add(neighbor);
queue.add(neighbor);
coveringGraph.addVertex(neighbor);
coveringGraph.addEdge(currentVertex, neighbor);
System.out.println(coveringGraph);
displayAdjacencyList(coveringGraph);
displayIncidenceMatrix(coveringGraph);
displayAdjacencyMatrix(coveringGraph);
}
Rezultatul în consolă
1. Introducerea nodurilor , nodurile se introduc în perechi câte 2 , nodul sursă și destinație
3. Afișare grafului