Bird
Raised Fist0
DSA Cprogramming~10 mins

Graph Terminology Vertices Edges Directed Undirected Weighted in DSA C - Execution Trace

Choose your learning style10 modes available
Concept Flow - Graph Terminology Vertices Edges Directed Undirected Weighted
Start: Define Graph
↓
Identify Vertices (Nodes)
↓
Identify Edges (Connections)
↓
Check Edge Type
↓
Directed
↓
Check Weight
↓
Weighted
↓
Graph Fully Defined
This flow shows how a graph is built by defining vertices, edges, then classifying edges as directed or undirected, and weighted or unweighted.
Execution Sample
DSA C
Graph G = {
  Vertices: {A, B, C},
  Edges: {(A->B, 5), (B->C, 3)}
};
Defines a graph with 3 vertices and 2 directed weighted edges.
Execution Table
StepOperationVerticesEdgesEdge TypeWeightVisual State
1Initialize graph{}{}N/AN/AGraph is empty
2Add vertex A{A}{}N/AN/AA
3Add vertex B{A, B}{}N/AN/AA B
4Add vertex C{A, B, C}{}N/AN/AA B C
5Add edge A->B with weight 5{A, B, C}{(A->B)}Directed5A --5--> B C
6Add edge B->C with weight 3{A, B, C}{(A->B), (B->C)}Directed3A --5--> B --3--> C
7Check if edges are weighted{A, B, C}{(A->B), (B->C)}DirectedWeightedEdges have weights 5 and 3
8Graph fully defined{A, B, C}{(A->B), (B->C)}DirectedWeightedFinal graph with 3 vertices and 2 weighted directed edges
💡 All vertices and edges added; graph classification complete.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5After Step 6Final
Vertices{}{A}{A, B}{A, B, C}{A, B, C}{A, B, C}{A, B, C}
Edges{}{}{}{}{(A->B)}{(A->B), (B->C)}{(A->B), (B->C)}
Edge TypeN/AN/AN/AN/ADirectedDirectedDirected
WeightN/AN/AN/AN/A5 (A->B)3 (B->C)Weighted
Key Moments - 3 Insights
Why do we say edges can be directed or undirected?
Because edges show connections between vertices; directed edges have a direction (like one-way street), undirected edges do not (like two-way street). See execution_table steps 5 and 6 where edges are added as directed.
What does it mean for edges to be weighted?
Weighted edges have numbers (weights) showing cost or distance. In the table steps 5 and 6, weights 5 and 3 are assigned to edges, meaning these connections have values.
Can a graph have vertices without edges?
Yes, vertices can exist alone without edges. In step 4, vertices A, B, C exist before edges are added in step 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 5, what is the edge type added?
AUndirected
BDirected
CWeighted
DUnweighted
💡 Hint
Check the 'Edge Type' column at step 5 in execution_table.
At which step are all vertices added to the graph?
AStep 4
BStep 3
CStep 2
DStep 6
💡 Hint
Look at the 'Vertices' column in execution_table to see when {A, B, C} appear.
If edges were unweighted, how would the 'Weight' column change at step 6?
AIt would show weights as 0
BIt would show the same weights
CIt would show 'N/A' or no weights
DIt would show negative weights
💡 Hint
Refer to the 'Weight' column in execution_table and think about what unweighted means.
Concept Snapshot
Graph = set of vertices (nodes) and edges (connections).
Edges can be directed (one-way) or undirected (two-way).
Edges can be weighted (have values) or unweighted.
Vertices can exist without edges.
Graph types depend on edge direction and weights.
Full Transcript
A graph is made of vertices and edges. Vertices are points or nodes. Edges connect vertices. Edges can have direction: directed edges go one way, undirected edges go both ways. Edges can also have weights, which are numbers showing cost or distance. Vertices can exist alone without edges. This example shows adding vertices A, B, C, then adding directed weighted edges A to B with weight 5, and B to C with weight 3. The graph is then fully defined as directed and weighted.

Practice

(1/5)
1. Which of the following best describes a vertex in a graph?
easy
A. A point or node representing an entity in the graph
B. A connection between two nodes
C. A path that starts and ends at the same node
D. A graph with no edges

Solution

  1. Step 1: Understand the definition of vertex

    A vertex is a fundamental unit in a graph representing an entity or point.
  2. Step 2: Differentiate vertex from edges and other terms

    Edges connect vertices; paths and graph types are different concepts.
  3. Final Answer:

    A point or node representing an entity in the graph -> Option A
  4. Quick Check:

    Vertex = node/entity [OK]
Hint: Vertices are the points or nodes in a graph [OK]
Common Mistakes:
  • Confusing vertices with edges
  • Thinking vertices are paths
  • Mixing vertex with graph types
2. Which of the following is the correct way to represent a weighted edge from vertex u to vertex v with weight 5 in C struct?
easy
A. struct Edge { int u, v; }; struct Weight { int w; };
B. struct Edge { int u; int v; }; int weight = 5;
C. struct Edge { int u; int v; int weight; };
D. struct Edge { int u; int v; };

Solution

  1. Step 1: Identify the correct struct fields for weighted edge

    A weighted edge needs source vertex, destination vertex, and weight as fields.
  2. Step 2: Check struct syntax correctness

    struct Edge { int u; int v; int weight; }; correctly declares all three fields in one struct.
  3. Final Answer:

    struct Edge { int u; int v; int weight; }; -> Option C
  4. Quick Check:

    Weighted edge struct = u, v, weight [OK]
Hint: Weighted edges need u, v, and weight fields in one struct [OK]
Common Mistakes:
  • Separating weight outside the edge struct
  • Incorrect field order causing confusion
  • Missing weight field
3. What is the output of the following code snippet that prints edges of a directed weighted graph?
typedef struct { int u; int v; int weight; } Edge;
Edge edges[] = { {0, 1, 10}, {1, 2, 20}, {2, 0, 30} };
int n = 3;
for (int i = 0; i < n; i++) {
    printf("%d -> %d (weight %d)\n", edges[i].u, edges[i].v, edges[i].weight);
}
medium
A. 0 -> 1 (weight 10) 1 -> 2 (weight 30) 2 -> 0 (weight 20)
B. 0 -> 1 (weight 10) 1 -> 2 (weight 20) 2 -> 0 (weight 30)
C. 0 -> 1 (weight 30) 1 -> 2 (weight 20) 2 -> 0 (weight 10)
D. 1 -> 0 (weight 10) 2 -> 1 (weight 20) 0 -> 2 (weight 30)

Solution

  1. Step 1: Read the edges array values

    Edges are: (0,1,10), (1,2,20), (2,0,30).
  2. Step 2: Trace the loop printing each edge

    Loop prints each edge in order with format "u -> v (weight w)".
  3. Final Answer:

    0 -> 1 (weight 10) 1 -> 2 (weight 20) 2 -> 0 (weight 30) -> Option B
  4. Quick Check:

    Print edges as stored = 0 -> 1 (weight 10) 1 -> 2 (weight 20) 2 -> 0 (weight 30) [OK]
Hint: Print edges in array order with their weights [OK]
Common Mistakes:
  • Reversing u and v in print
  • Mixing up weights between edges
  • Printing edges in wrong order
4. Identify the error in this code snippet that tries to create an undirected graph edge list:
typedef struct { int u; int v; } Edge;
Edge edges[2];
edges[0].u = 0; edges[0].v = 1;
edges[1].u = 1; edges[1].v = 0;
// Print edges
for (int i = 0; i <= 2; i++) {
    printf("Edge from %d to %d\n", edges[i].u, edges[i].v);
}
medium
A. Edge direction is incorrect for undirected graph
B. Edges should have weight field
C. Edges array size should be 1, not 2
D. Loop condition should be i < 2, not i <= 2

Solution

  1. Step 1: Check array size and loop bounds

    Edges array has size 2, valid indices are 0 and 1.
  2. Step 2: Identify loop error

    Loop runs from i=0 to i=2 inclusive, which accesses edges[2] (out of bounds).
  3. Final Answer:

    Loop condition should be i < 2, not i <= 2 -> Option D
  4. Quick Check:

    Array size 2 means max index 1 [OK]
Hint: Loop index must be less than array size [OK]
Common Mistakes:
  • Using <= instead of < in loop
  • Assuming edges need weight for undirected
  • Confusing edge direction in undirected graphs
5. You have a weighted undirected graph with vertices 0, 1, 2 and edges:
(0,1,4), (1,2,6), (0,2,5)
How many edges will be stored if you represent this graph using an edge list storing each edge only once?
medium
A. 3
B. 6
C. 2
D. 1

Solution

  1. Step 1: Understand undirected edge storage

    In undirected graphs, each edge connects two vertices without direction, so store only one entry per edge.
  2. Step 2: Count unique edges given

    Edges are (0,1), (1,2), (0,2) -- total 3 unique edges.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Undirected edges stored once = 3 [OK]
Hint: Undirected edges stored once, count unique pairs [OK]
Common Mistakes:
  • Counting each edge twice
  • Confusing directed with undirected storage
  • Ignoring weights when counting edges
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