Generated with Monsha
Save this resource to edit, expand, or export it, or create more resources for free.
Generated with Monsha
Save this resource to edit, expand, or export it, or create more resources for free.
Understanding Graph Data Structures
Handout
Grade 12
English
Understanding Graph Data Structures
Introduction to Graph Data Structures
A graph is a non-linear data structure consisting of a finite set of vertices (or nodes) and a set of edges that connect these vertices. Graphs are widely used to model real-world relationships and networks, such as social networks, transportation routes, and computer networks. Unlike linear data structures like arrays or linked lists, or tree structures, graphs allow for complex, many-to-many relationships between elements.
Key Components
- Vertices (Nodes): These are the fundamental entities in a graph. Each vertex can represent an object, a person, a city, or any other item in a dataset.
- Edges: These are the connections between vertices. An edge signifies a relationship or interaction between two vertices. Edges can have different properties, which leads to various types of graphs.
Types of Graphs
- Undirected Graph: Edges have no direction. If an edge connects vertex A to vertex B, it implies that B is also connected to A. Think of a two-way street.
- Directed Graph (Digraph): Edges have a specific direction. An edge from A to B does not necessarily mean there's an edge from B to A. This is like a one-way street.
- Weighted Graph: Each edge is assigned a numerical value, or 'weight', representing a cost, distance, or strength of the connection. For example, in a road network, weights could be distances between cities.
Graph Representations
To store and manipulate graphs in computer memory, two primary methods are used:
- Adjacency Matrix: This is a square matrix where the rows and columns represent vertices. An entry is $ 1 $ (or the weight, for a weighted graph) if there's an edge from vertex $ i $ to vertexotherwise. This representation is suitable for dense graphs (many edges).
- Adjacency List: This is an array of lists. The index of the array represents a vertex, and each list at that index contains all the vertices directly connected to it. This is generally more space-efficient for sparse graphs (few edges).
Graphs are powerful tools for solving complex problems, from finding the shortest path between two points to analyzing data flow and dependencies.
Curriculum Expectations
- Custom Standard 2