Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Graph and its Representations (กราฟและการแสดงผล): Adjacency Matrix, List, Edge List

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

Graph and its Representations (กราฟและการแสดงผล): Adjacency Matrix, List, Edge List

ในกราฟนี้มี 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)

Graph and its Representations (กราฟและการแสดงผล): Adjacency Matrix, List, Edge List

Edge List Representation

Graph and its Representations (กราฟและการแสดงผล): Adjacency Matrix, List, Edge List

แสดงกราฟด้วย Array 1 มิติ เรียกว่า Edge List แต่ละเส้นเชื่อมมี 2 ค่า: ตัวแรก = Source, ตัวที่สอง = Destination กราฟ Undirected จำนวนสมาชิกใน Edge List จะเพิ่มเป็น 2 เท่า

Adjacency List Representation

การแสดงแบบ Adjacency List 基於 Linked Lists แต่ละโหนดเก็บรายการโหนดที่เชื่อมตรง ท้ายรายการเชื่อมกับ Null เพื่อบอกว่าสิ้นสุดรายการ

Graph and its Representations (กราฟและการแสดงผล): Adjacency Matrix, List, Edge List