You are on page 1of 2

BIỂU DIỄN ðỒ THỊ BẰNG MA TRẬN KỀ VÀ DANH

SÁCH ðỈNH KỀ

ðồ thị là một cấu trúc dữ liệu quan trọng trong việc mô hình hóa các bài toán tin học. Việc biểu
diễn ñồ thị ở dạng thức dễ dàng xử lý và lưu trữ trên máy, do ñó, là nhu cầu quan trọng. Hai dạng
biểu diễn thường dùng là ma trận kề và danh sách ñỉnh kề.

Giả sử có ñồ thị G với tập ñỉnh hữu hạn V gồm n ñỉnh ñánh số từ 0 tới n–1, V = {0, 1, …, n-1}.
Tập các cạnh có hướng E ⊂ {(i, j) | i, j ∈ V} ñược gắn các trọng số nguyên dương. Chúng ta
dùng ñồ thị sau làm ví dụ:

0
4
2
2 6

10
3 8
12
4

Ma trận kề
ðồ thị G ñược biểu diễn bằng ma trận vuông n x n. Trong ñó phần tử ở dòng i cột j có giá trị là
trọng số của cạnh (i, j) nếu có cạnh nối từ ñỉnh i tới ñỉnh j; ngược lại, nếu không có cạnh nối từ
ñỉnh i tới ñỉnh j thì giá trị là 0.

Với ñồ thị ví dụ trên thì ma trận kề tương ứng là:

0 2 0 0 0
4 0 6 0 0
0 0 0 8 10
0 0 0 0 0
0 0 0 12 0

Chẳng hạn dòng thứ 3 (tính từ 0) toàn là 0 vì từ ñỉnh 3 không nối tới ñỉnh nào khác. Còn cột thứ
3 có hai phần tử khác 0 vì có hai ñỉnh nối tới 3.

Nếu ñồ thị là vô hướng thì ma trận kề là ñối xứng vì một cạnh vô hướng có thể xem như hai cạnh
có hướng ngược chiều.
Nếu ñồ thị không có trọng số thì chúng ta qui ước dùng trọng số 1 cho tất cả các cạnh. Khi ñó
các phần tử của ma trận kề chỉ gồm 0 hoặc 1. Với 0 nghĩa là không có cạnh nối còn 1 là có cạnh
nối.

Với cách biểu diễn này chúng ta nhận thấy nếu ñồ thị có ít cạnh thì ma trận kề sẽ có nhiều số 0;
gây lãng phí bộ nhớ lưu trữ (số 0 “chẳng qua” là không có cạnh). ðây chính là nhược ñiểm của
cách biểu diễn này. Tuy nhiên nó có ưu ñiểm rất lớn là tốc ñộ truy xuất nhanh (thường thì ma
trận ñược cài bằng mảng hai chiều).

Danh sách đỉnh kề


Trong trường hợp ñộ thị có ít cạnh, người ta thường dùng cách biểu diễn danh sách ñỉnh kề.
Trong ñó mỗi ñỉnh sẽ có một danh sách các ñỉnh kề (ñỉnh con) của nó.

Với ñồ thị ví dụ trên thì danh sách ñỉnh kề tương ứng là:

ðỉnh Danh sách ñỉnh kề


0
1|2
1
0|4 2|6
2
3|8 4|10
3

4
3|12

Chẳng hạn ñỉnh 3 có danh sách ñỉnh kề rỗng vì ñỉnh 3 không nối ñến ñỉnh nào cả. Danh sách
ñỉnh kề của 1 có hai phần tử vì từ 1 có hai cạnh ra.

Cách biểu diễn bằng danh sách ñỉnh kề giúp tiết kiệm không gian lưu trữ (chỉ lưu trữ những gì
cần thiết) nhưng lại chậm về tốc ñộ truy xuất (phải duyệt danh sách ñể biết các ñỉnh kề và trọng
số tương ứng).