Sobes.tech
Junior — Middle

Cum se pot reprezenta și descrie conexiunile și relațiile dintre vârfuri într-o structură de graf?

sobes.tech AI

Răspuns de la AI

Legăturile și relațiile dintre vârfuri într-o structură de graf sunt de obicei descrise cu ajutorul muchiilor. Principalele moduri de reprezentare a unui graf:

  • Listă de adiacență: pentru fiecare vârf, se păstrează o listă a vârfurilor vecine cu care este conectat. Este o metodă eficientă pentru grafuri rare.

  • Matrice de adiacență: un array bidimensional în care elementul [i][j] indică existența (și, posibil, greutatea) unei muchii între vârfurile i și j. Este util pentru grafuri dense.

  • Listă de muchii: pur și simplu o listă a tuturor muchiilor, unde fiecare muchie conține informații despre vârfurile de început și de sfârșit (și greutatea, dacă există).

De exemplu, în Java, un graf poate fi reprezentat astfel:

class Graph {
    private Map<Integer, List<Integer>> adjacencyList = new HashMap<>();

    void addEdge(int from, int to) {
        adjacencyList.computeIfAbsent(from, k -> new ArrayList<>()).add(to);
        // Pentru un graf neorientat, adăugați muchia inversă
        // adjacencyList.computeIfAbsent(to, k -> new ArrayList<>()).add(from);
    }
}

Astfel, legăturile între vârfuri sunt modelate prin muchii, iar structura de date este aleasă în funcție de sarcină și de caracteristicile grafului.