C Graph Representation 🎯

beginner
22 min

C Graph Representation 🎯

Welcome to a comprehensive guide on C Graph Representation, perfect for both beginners and intermediates! In this tutorial, we'll explore how to create and manipulate graphs using C programming, a popular language for system development.

Understanding Graphs 📝

Before we dive into coding, let's discuss what a graph is and why it's important. A graph is a collection of nodes (also known as vertices) connected by edges. Graphs are used in various real-world applications, such as mapping road networks, representing social relationships, and analyzing data structures.

Creating Graphs in C 💡

In C, we represent graphs as adjacency matrices or adjacency lists. Today, we'll focus on adjacency matrices, which use a 2D array to represent the graph.

Adjacency Matrix Representation 📝

Each cell in the matrix represents the edge between two vertices. If there is an edge between i and j, the corresponding cell (i, j) will contain 1. If there is no edge, the cell will contain 0.

Here's an example of a simple graph with 4 vertices represented as an adjacency matrix:

c
#include <stdio.h> #define V 4 int graph[V][V] = { {0, 1, 0, 1}, {1, 0, 1, 1}, {0, 1, 0, 0}, {1, 1, 0, 0} }; void printGraph(int V, int graph[V][V]) { for (int i = 0; i < V; i++) { for (int j = 0; j < V; j++) printf("%d ", graph[i][j]); printf("\n"); } } int main() { printGraph(V, graph); return 0; }

Upon execution, this code will output:

0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0

In the output, each row represents a vertex, and each column represents another vertex connected to it.

Manipulating Graphs 💡

Now that we know how to represent a graph, let's discuss some common operations we can perform on it:

  • Adding a vertex: To add a new vertex, we simply increase the size of our graph array and initialize the new row and column with zeros.

  • Adding an edge: To add an edge between two vertices i and j, we set the corresponding cell (i, j) in the graph array to 1.

  • Deleting an edge: To delete an edge between two vertices i and j, we set the corresponding cell (i, j) in the graph array to 0.

  • Finding the degree of a vertex: The degree of a vertex is the number of its adjacent vertices. In our adjacency matrix representation, we can find the degree of a vertex i by summing the elements in the ith row (excluding the diagonal).

Quiz 💡

Question: Which operation adds an edge between vertices i and j in an adjacency matrix representation of a graph? A: Setting the corresponding cell (i, j) to 0 B: Setting the corresponding cell (i, j) to 1 C: Summing the elements in the ith row (excluding the diagonal) Correct: B Explanation: Setting the corresponding cell (i, j) to 1 adds an edge between vertices i and j.

That's it for today's lesson on C Graph Representation! As you continue to practice, you'll become more comfortable with creating and manipulating graphs in C. Happy coding! 🚀