Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 121 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
121
Dung lượng
880,31 KB
Nội dung
Cấu trúc liệu giải thuật Đỗ Tuấn Anh anhdt@it-hut.edu.vn Nội dung Chương – Thiết kế phân tích (5 tiết) Chương – Giải thuật đệ quy (10 tiết) Chương – Mảng danh sách (5 tiết) Chương – Ngăn xếp hàng đợi (10 tiết) Chương – Cấu trúc (10 tiết) Chương – Tìm kiếm (5 tiết) Chương – Sắp xếp (10 tiết) Chương – Đồ thị vài cấu trúc phi tuyến khác (5 tiết) Chương – Sắp xếp tìm kiếm ngồi (after) Chương – Đồ thị vài cấu trúc phi tuyến khác Định nghĩa khái niệm Biểu diễn đồ thị • • Phép duyệt đồ thị • • Theo chiều sâu Theo chiều rộng Ứng dụng • • Ma trận lân cận Danh sách lân cận Bài tốn bao đóng truyền ứng Bài tốn xếp topo Giới thiệu danh sách tổng quát, đa danh sách (not yet) Định nghĩa khái niệm Đồ thị Một đồ thị G bao gồm tập V(G) đỉnh (nút) tập E(G) cạnh (cung) cặp đỉnh đỉnh a b c d e f g h i j k l cạnh V = { a, b, c, d, e, f, g, h, i, j, k, l } 12 đỉnh E = { (a, b), (a, e), (b, e), (b, f), (c, j), (c, g), (c, h), (d, h), (e, j), (g, k), (g, l), (g, h), (i, j) } 13 cạnh Đồ thị định hướng Trong đồ thị định hướng (digraph), cạnh cặp có thứ tự TW 45 NW 35 ORD UA 877 12 UA AA 49 LAX JFK DL 247 AA 903 AA 1387 DL 335 SFO MIA AA 523 DFW AA 411 BOS Ứng dụng đồ thị Đồ thị mô tả mối quan hệ Mạng Internet Mạng lưới đường giao thông Nguyên tử Sơ đồ cấu trúc điều khiển Mạng lưới xã hội Bề mặt địa lý (CAD) Mạch điện … George Paul Linda Ringo Yoko John Các loại đồ thị khác Đa đồ thị cho phép có nhiều cạnh đỉnh a c b d f Giả đồ thị đa đồ thị cho phép vòng lặp (là cạnh từ đỉnh đến nó) Cạnh Đỉnh w e2 u bậc(u) = bậc(w) = u v gọi lân cận hay kề (adjacent) e1 v bậc vào(b) = bậc ra(b) = đỉnh nguồn b c a đỉnh đích e d Đường Một đường có độ dài k chuỗi đỉnh v , v , …, v k mà (vi , vi+1 ) với i = 0, 1, …, k – cạnh G b, c, d đường Đường đơn: a, e, k, p, l, q m, h, d, c, g (không có đỉnh lặp lại) a b c d e f g h j k l m n o p q Không phải đường đơn: a, b, e, f, g, b, g, l Ví dụ Bậc vào 5 2 0 6 8 9 Dequeue Q = { 4, 3, } Enqueue OUTPUT: Enqueue new starting points Ví dụ Bậc vào 5 2 0 6 8 9 Dequeue Q = { 3, } Adjust indegrees of neighbors OUTPUT: -1 Adjust 4’s neighbors Ví dụ Bậc vào 5 8 7 2 0 9 Dequeue Q = { 3, } No new start points found OUTPUT: NO new start points Ví dụ Bậc vào 5 8 7 2 0 9 Dequeue Q = { } Adjust 3’s neighbors OUTPUT: -1 Ví dụ Bậc vào 5 6 8 2 0 9 Dequeue Q = { } No new start points found OUTPUT: Ví dụ Bậc vào 5 6 8 2 0 9 Dequeue Q = { } Adjust 2’s neighbors OUTPUT: -1 -1 Ví dụ Bậc vào 5 6 8 2 0 9 Dequeue Q = { 5, } Enqueue 5, OUTPUT: Ví dụ Bậc vào 5 6 8 2 0 9 Dequeue Q = { } Adjust neighbors OUTPUT: -1 Ví dụ Bậc vào 5 6 8 2 0 9 Dequeue Q = { } No new starts OUTPUT: Ví dụ Bậc vào 5 6 8 2 0 -1 Dequeue Q = { } Adjust neighbors OUTPUT: Ví dụ Bậc vào 2 5 6 8 0 9 Dequeue Q = { } Enqueue OUTPUT: Ví dụ Bậc vào 2 5 6 8 0 9 Dequeue Q = { } Adjust indegrees of neighbors OUTPUT: -1 Ví dụ Bậc vào 5 6 8 OUTPUT: 2 Dequeue Q = { } Enqueue Dequeue Q = { } STOP – no neighbors 0 9 9 Ví dụ OUTPUT: Sắp xếp topo: Độ phức tạp Không thăm đỉnh nhiều lần Với đỉnh, phải xét tất cung Σ bậc_ra(v) = m Độ phức tạp thời gian: O(n + m) ... – Đồ thị vài cấu trúc phi tuyến khác (5 tiết) Chương – Sắp xếp tìm kiếm ngồi (after) Chương – Đồ thị vài cấu trúc phi tuyến khác Định nghĩa khái niệm Biểu diễn đồ thị • • Phép duyệt đồ thị •... làm lãng phí nhớ đồ thị thưa Tìm cạnh có tồn hay không thời gian số Phép duyệt đồ thị Ứng dụng Cho đồ thị đỉnh s thuộc đồ thị Tìm tất đường từ s tới đỉnh khác thuật tốn duyệt đồ thị phổ biến Tìm... (CAD) Mạch điện … George Paul Linda Ringo Yoko John Các loại đồ thị khác Đa đồ thị cho phép có nhiều cạnh đỉnh a c b d f Giả đồ thị đa đồ thị cho phép vòng lặp (là cạnh từ đỉnh đến nó) Cạnh Đỉnh