Bird
Raised Fist0
DSA Goprogramming~5 mins

Graph Terminology Vertices Edges Directed Undirected Weighted in DSA Go - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a vertex in a graph?
A vertex (or node) is a fundamental unit in a graph that represents an entity or point. It can connect to other vertices through edges.
Click to reveal answer
beginner
Define an edge in graph terminology.
An edge is a connection or link between two vertices in a graph. It can be directed or undirected.
Click to reveal answer
beginner
What is the difference between a directed and an undirected edge?
A directed edge has a direction from one vertex to another (like a one-way street). An undirected edge connects two vertices both ways (like a two-way street).
Click to reveal answer
beginner
What does it mean if a graph is weighted?
A weighted graph has edges that carry a value or weight, representing cost, distance, or any measure between vertices.
Click to reveal answer
intermediate
Can a graph have both directed and undirected edges?
Yes, such graphs are called mixed graphs, containing both directed and undirected edges.
Click to reveal answer
What is a vertex in a graph?
AA point or node representing an entity
BA connection between two nodes
CA value assigned to an edge
DA path between two graphs
Which type of edge has a direction?
ADirected edge
BWeighted edge
CUndirected edge
DLoop edge
In an undirected graph, edges are:
AOne-way connections
BTwo-way connections
CAlways weighted
DNot connected
What does a weight on an edge represent?
AThe color of the edge
BThe direction of the edge
CThe number of vertices
DThe cost or distance between vertices
A graph with both directed and undirected edges is called:
ASimple graph
BWeighted graph
CMixed graph
DComplete graph
Explain the difference between vertices and edges in a graph.
Think of vertices as places and edges as roads connecting them.
You got /3 concepts.
    Describe what makes a graph weighted and how weights affect edges.
    Imagine roads with different lengths or toll costs.
    You got /3 concepts.

      Practice

      (1/5)
      1. In a graph, what do we call the points or nodes where edges meet?
      easy
      A. Paths
      B. Edges
      C. Weights
      D. Vertices

      Solution

      1. Step 1: Understand graph components

        A graph consists of points called nodes and connections called edges.
      2. Step 2: Identify the term for nodes

        The points or nodes where edges meet are called vertices.
      3. Final Answer:

        Vertices -> Option D
      4. Quick Check:

        Nodes = Vertices [OK]
      Hint: Remember: nodes = vertices, connections = edges [OK]
      Common Mistakes:
      • Confusing edges with vertices
      • Thinking weights are nodes
      • Mixing paths with vertices
      2. Which of the following is the correct way to declare an undirected graph using adjacency list in Go?
      easy
      A. graph := make(map[int][]int)
      B. graph := make([][]int, 0)
      C. graph := make(map[int]int)
      D. graph := make([]int, 0)

      Solution

      1. Step 1: Understand adjacency list representation

        An adjacency list uses a map from a vertex to a list of connected vertices.
      2. Step 2: Choose correct Go syntax

        Using map[int][]int creates a map from int to slice of ints, perfect for adjacency list.
      3. Final Answer:

        graph := make(map[int][]int) -> Option A
      4. Quick Check:

        Map of int to slice[int] = adjacency list [OK]
      Hint: Adjacency list = map from node to list of nodes [OK]
      Common Mistakes:
      • Using map[int]int which stores single int, not list
      • Using slice of slices without map for keys
      • Using slice of ints which can't map nodes
      3. What will be the output of the following Go code snippet representing a weighted directed graph adjacency list?
      graph := map[int]map[int]int{
        1: {2: 5, 3: 10},
        2: {3: 2},
        3: {},
      }
      fmt.Println(graph[1][3])
      medium
      A. 2
      B. 5
      C. 10
      D. 0

      Solution

      1. Step 1: Understand graph structure

        graph[1] is a map with keys 2 and 3, values 5 and 10 respectively.
      2. Step 2: Access graph[1][3]

        graph[1][3] accesses the weight from vertex 1 to 3, which is 10.
      3. Final Answer:

        10 -> Option C
      4. Quick Check:

        Weight from 1 to 3 = 10 [OK]
      Hint: Access nested map keys for weights: graph[from][to] [OK]
      Common Mistakes:
      • Confusing weight 5 (edge 1->2) with 1->3
      • Assuming 0 means no edge but 3 has empty map
      • Mixing up keys and values in nested maps
      4. Identify the error in this Go code snippet for adding an edge to an undirected graph adjacency list:
      func addEdge(graph map[int][]int, u, v int) {
        graph[u] = append(graph[u], v)
        graph[v] = append(graph[u], v)
      }
      medium
      A. Appending v to graph[u] twice
      B. Appending v to graph[v] incorrectly
      C. Missing initialization of graph map
      D. Using wrong data type for graph

      Solution

      1. Step 1: Analyze append statements

        First append adds v to graph[u], correct for edge u->v.
      2. Step 2: Check second append

        Second append incorrectly appends v to graph[u] again instead of graph[v].
      3. Final Answer:

        Appending v to graph[v] incorrectly -> Option B
      4. Quick Check:

        Second append should be graph[v] = append(graph[v], u) [OK]
      Hint: For undirected, append u to v's list and v to u's list [OK]
      Common Mistakes:
      • Appending to wrong slice variable
      • Forgetting to append both directions
      • Not initializing map slices before append
      5. Given a weighted undirected graph represented as a map[int]map[int]int in Go, how can you ensure that adding an edge between two vertices u and v with weight w updates both directions correctly?
      hard
      A. graph[u][v] = w; graph[v][u] = w
      B. graph[u][v] = w only
      C. graph[v][u] = w only
      D. graph[u][v] = w; graph[u][v] = w

      Solution

      1. Step 1: Understand undirected graph edge representation

        In undirected graphs, edges go both ways, so weights must be stored both ways.
      2. Step 2: Update both directions in map

        Assign weight w to graph[u][v] and graph[v][u] to reflect undirected edge.
      3. Final Answer:

        graph[u][v] = w; graph[v][u] = w -> Option A
      4. Quick Check:

        Both directions updated = undirected edge [OK]
      Hint: Update both graph[u][v] and graph[v][u] for undirected edges [OK]
      Common Mistakes:
      • Updating only one direction
      • Assigning weight twice to same direction
      • Confusing directed and undirected edge updates
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard