Graph (กราฟ) เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้น แสดงข้อมูลด้วยโหนด (Nodes) และความสัมพันธ์ด้วยเส้นเชื่อม (Edges) กราฟ G มี 2 ส่วน: Vertices (V) และ Edges (E) 記法 G(V,E)

ในกราฟนี้มี 5 โหนด 5 เส้นเชื่อม แบบมีทิศทาง (Directed) ตัวอย่างเส้นเชื่อม B-D แหล่ง (Source) คือ B ปลายทาง (Destination) คือ D เดินทาง B→D ได้ แต่ D→B ไม่ได้
กราฟเป็น Non-linear ไม่มีโครงสร้างปกติ การแสดงในหน่วยความจำมีหลายรูปแบบ:
- Adjacency Matrix Representation
- Edge List Representation
- Adjacency List Representation
Adjacency Matrix Representation
แสดงกราฟด้วย Adjacency Matrix เป็น Binary Square Matrix ตำแหน่งแถว i คอลัมน์ j ถ้ามีเส้นเชื่อม = 1 กราฟ Undirected จะได้ Matrix 对称 (Symmetric)

Edge List Representation

แสดงกราฟด้วย Array 1 มิติ เรียกว่า Edge List แต่ละเส้นเชื่อมมี 2 ค่า: ตัวแรก = Source, ตัวที่สอง = Destination กราฟ Undirected จำนวนสมาชิกใน Edge List จะเพิ่มเป็น 2 เท่า
Adjacency List Representation
การแสดงแบบ Adjacency List 基於 Linked Lists แต่ละโหนดเก็บรายการโหนดที่เชื่อมตรง ท้ายรายการเชื่อมกับ Null เพื่อบอกว่าสิ้นสุดรายการ
