Bài giảng Toán rời rạc 2 - Biểu diễn đồ thị trên máy tính

35 93 0
Bài giảng Toán rời rạc 2 - Biểu diễn đồ thị trên máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Toán rời rạc 2 - Biểu diễn đồ thị trên máy tính cung cấp cho người học các kiến thức: Biểu diễn đồ thị bằng ma trận kề, biểu diễn đồ thị bằng ma trận liên thuộc, biểu diễn đồ thị bằng danh sách cạnh, biểu diễn đồ thị bằng danh sách kề. Mời các bạn cùng tham khảo.

BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH Tốn rời rạc Nội dung • • • • Biểu diễn đồ thị ma trận kề Biểu diễn đồ thị ma trận liên thuộc Biểu diễn đồ thị danh sách cạnh Biểu diễn đồ thị danh sách kề Biểu diễn đồ thị ma trận kề Ma trận kề đồ thị vơ hướng • Xét đồ thị đơn vô hướng G =, với tập đỉnh V = {1, 2, , n}, tập cạnh E = {e1, e2, , em} Ta gọi ma trận kề đồ thị G ma trận có phần tử hoặc theo qui định sau: Tính chất ma trận kề đồ thị vô hướng Ma trận kề đồ thị có hướng • Định nghĩa hồn tồn tương tự với đồ thị vô hướng – Cần lưu ý tới hướng cạnh – Ma trận kề đồ thị có hướng khơng đối xứng Tính chất ma trận kề đồ thị có hướng Ma trận trọng số Ưu & nhược điểm ma trận kề • Ưu điểm – – – – Đơn giản, dễ cài đặt máy tính Sử dụng mảng hai chiều để biểu diễn ma trận kề Dễ dàng kiểm tra hai đỉnh u,v có kề với hay không Đúng phép so sánh (a*u+*v+≠0?) • Nhược điểm – Lãng phí nhớ: số cạnh nhiều hay ta cần n2 đơn vị nhớ để biểu diễn – Không thể biểu diễn với đồ thị có số đỉnh lớn – Để xem xét đỉnh đỉnh u có đỉnh kề cần n phép so sánh kể đỉnh u đỉnh cô lập đỉnh treo Qui ước khn dạng lưu trữ ma trận kề • Dịng ghi lại số đỉnh đồ thị • N dòng ghi lại ma trận kề đồ thị – Hai phần tử khác ma trận kề viết cách vài khoảng trống 10 Cấu trúc liệu biểu diễn danh sách cạnh (1/4) • Biểu diễn danh danh sách cạnh đồ thị mảng: //Định nghĩa cạnh đồ thị typedef struct { int dau; int cuoi; } Edge; //Danh sách cạnh biểu diễn mảng G Edge G[MAX]; 21 Cấu trúc liệu biểu diễn danh sách cạnh (2/4) • Ví dụ: 22 Cấu trúc liệu biểu diễn danh sách cạnh (3/4) //Định nghĩa cạnh có trọng số đồ thị typedef struct { int dau; int cuoi; int trongso; } Edge; //Danh sách cạnh biểu diễn mảng G Edge G[MAX]; 23 Cấu trúc liệu biểu diễn danh sách cạnh (4/4) • Biểu diễn danh danh sách cạnh đồ thị danh sách liên kết: typedef struct canh{ //Định nghĩa cạnh đồ thị int dau; int cuoi; struct canh *next; } *Edge; Edge *G; //Các cạnh biểu diễn danh danh sách liên kết G 24 Biểu diễn đồ thị danh sách kề Danh sách kề • Với đỉnh u đồ thị lưu trữ danh sách đỉnh kề với mà ta ký hiệu Ke(u), nghĩa 26 Ưu & nhược điểm danh sách kề • Ưu điểm danh sách kề: – Dễ dàng duyệt tất đỉnh danh sách kề; – Dễ dàng duyệt cạnh đồ thị danh sách kề; – Tối ưu phương pháp biểu diễn • Nhược điểm danh sách kề: – Khó khăn cho người đọc có kỹ lập trình yếu 27 Biểu diễn danh sách kề dựa vào mảng • Mảng chia thành n đoạn – Đoạn thứ i mảng lưu trữ danh sách kề đỉnh thứ iV – Để biết đoạn thuộc mảng phần tử đến phần tử ta sử dụng mảng khác dùng để lưu trữ vị trí phần tử bắt đầu kết thúc đoạn VT[6] = {0, 2, 6, 9, 13, 16, 18} 28 Biểu diễn danh sách kề danh sách liên kết • Với đỉnh uV, ta biểu diễn danh sách kề đỉnh danh sách liên kết List(u) 29 Khuôn dạng lưu trữ danh sách kề • Dịng ghi lại số đỉnh đồ thị – N dòng ghi lại danh sách kề đỉnh tương ứng theo khn dạng: • Phần tử vị trí kết thúc đoạn, tiếp đến danh sách đỉnh danh sách kề – Các phần tử ghi cách vài khoảng trống 30 Bài tập • Trong buổi gặp mặt, số khách mời bắt tay với số khách mời khác Chứng minh tổng số lượt bắt tay tất khách mời số chẵn 31 Bài tập • Một đơn đồ thị vơ hướng với n đỉnh có nhiều cạnh? 32 Bài tập Hãy biểu diễn đồ thị vô hướng dạng: 1) Ma trận kề 2) Danh sách cạnh 3) Danh sách kề 33 Bài tập Hãy biểu diễn đồ thị có hướng dạng: 1) Ma trận kề 2) Danh sách cạnh 3) Danh sách kề 34 Bài tập Hãy biểu diễn đồ thị có hướng dạng: 1) Ma trận kề 2) Danh sách cạnh 35 ... Biểu diễn đồ thị ma trận kề Biểu diễn đồ thị ma trận liên thuộc Biểu diễn đồ thị danh sách cạnh Biểu diễn đồ thị danh sách kề Biểu diễn đồ thị ma trận kề Ma trận kề đồ thị vơ hướng • Xét đồ thị. .. chẵn 31 Bài tập • Một đơn đồ thị vơ hướng với n đỉnh có nhiều cạnh? 32 Bài tập Hãy biểu diễn đồ thị vô hướng dạng: 1) Ma trận kề 2) Danh sách cạnh 3) Danh sách kề 33 Bài tập Hãy biểu diễn đồ thị. .. trận liên thuộc: Đồ thị có hướng 13 Biểu diễn đồ thị danh sách cạnh Danh sách cạnh (cung) • Trong trường hợp đồ thị thưa (đồ thị có số cạnh m  6n), người ta thường biểu diễn đồ thị dạng danh sách

Ngày đăng: 31/10/2020, 15:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan