Quick actions

cmd+k|ctrl+k

Navigation

Languages

GraphJun2026

Snippet info

Language

Java

Visibility

public

Author

ingserge

Created

2026-06-25T22:10:15.132022Z

Updated

2026-06-25T22:43:20.11647Z

import java.util.*;

class Graph {
    private Map<Integer, ArrayList<Integer>> adjacencyList ;
    
    public Graph(){
        adjacencyList = new HashMap<Integer, ArrayList<Integer>>();
    }
    
    public void addVertex(int node){
        if (adjacencyList.containsKey(node)){
            System.out.println("The vertext is already registered.");
            return;
        }
        adjacencyList.put(node, null);
    }
    
    public void addEdge(int node, int edge){
        if (!adjacencyList.containsKey(node)){
           System.out.println("The vertex does not exist");
           return;
        }
        
        ArrayList<Integer> edgesList= adjacencyList.get(node);
        
        if (edgesList== null){
            edgesList = new ArrayList<Integer>();
            adjacencyList.put(node, edgesList);
        }
        if (!containsEdge(edgesList, edge)){
            edgesList.add(edge);    
        }
        
        ArrayList<Integer> transitiveEdgesList= adjacencyList.get(edge);
        
        if (transitiveEdgesList== null){
            transitiveEdgesList = new ArrayList<Integer>();
            adjacencyList.put(edge, transitiveEdgesList);
        }
        if (!containsEdge(transitiveEdgesList, node)){
            transitiveEdgesList.add(node);    
        }
        
        
        
    }
    
    public boolean containsEdge(ArrayList<Integer> edgesList, int edgeToCheck){
        for (Integer currentEdge: edgesList){
            if (currentEdge == edgeToCheck){
                return true;
            }
        }
        return false;
    }
    
    public void showConnections(){
        Set<Map.Entry<Integer, ArrayList<Integer>>> vertexEdges = adjacencyList.entrySet();

        for (Map.Entry<Integer, ArrayList<Integer>> entry : vertexEdges){
            ArrayList<Integer> edges = entry.getValue();
            String connections = "";    
            
            for (int i=0; i < edges.size(); i++){
                connections+= " "+ edges.get(i);
            }
            System.out.println("Node: "+ entry.getKey()+"-->"+ connections);
            
        }
    }
    
}


class Main {
    public static void main(String[] args) {
        Graph myGraph = new Graph();
        
        myGraph.addVertex(0);
        myGraph.addVertex(1);
        myGraph.addVertex(2);
        myGraph.addVertex(3);
        myGraph.addVertex(4);
        myGraph.addVertex(5);
        myGraph.addVertex(6);
        myGraph.addEdge(3,1);
        myGraph.addEdge(3,4);
        myGraph.addEdge(4,2);
        myGraph.addEdge(4,5);
        myGraph.addEdge(1,2);
        myGraph.addEdge(1,0);
        myGraph.addEdge(0,2);
        myGraph.addEdge(6,5);
        
        myGraph.showConnections();
    }
}
INFO