Hướng dẫn cấu trúc dữ liệu đồ thị python
Đồ thị trong cấu trúc dữ liệu là cấu trúc dữ liệu phi tuyến tính được tạo thành từ một số lượng hữu hạn các nút hoặc đỉnh và các cạnh kết nối chúng. Đồ thị trong cấu trúc dữ liệu được sử dụng để giải quyết các vấn đề trong thế giới thực, trong đó nó biểu thị vùng vấn đề dưới dạng mạng như mạng điện thoại, mạng mạch và mạng xã hội. Ví dụ: nó có thể biểu thị một người dùng đơn lẻ dưới dạng các nút hoặc đỉnh trong mạng điện thoại, trong khi liên kết giữa chúng qua điện thoại biểu thị các cạnh Show
Chương trình sau đại học. Phát triển web đầy đủ ngăn xếphợp tác với Caltech CTME Đăng ký ngayĐồ thị trong cấu trúc dữ liệu là gì?Biểu đồ là một loại cấu trúc dữ liệu phi tuyến tính được tạo thành từ các nút hoặc đỉnh và cạnh. Các cạnh kết nối hai nút bất kỳ trong biểu đồ và các nút còn được gọi là đỉnh Đồ thị này có tập đỉnh V= { 1,2,3,4,5} và tập cạnh E= { (1,2),(1,3),(2,3),(2,4 Bây giờ bạn đã học về định nghĩa của biểu đồ trong cấu trúc dữ liệu, bạn sẽ tìm hiểu về các loại khác nhau của chúng Các loại đồ thị trong cấu trúc dữ liệuCó nhiều loại biểu đồ khác nhau trong cấu trúc dữ liệu, mỗi loại được trình bày chi tiết bên dưới 1. đồ thị hữu hạnĐồ thị G=(V,E) được gọi là đồ thị hữu hạn nếu số đỉnh và số cạnh của đồ thị là hữu hạn 2. đồ thị vô hạnĐồ thị G=(V, E) được gọi là đồ thị hữu hạn nếu số đỉnh và số cạnh của đồ thị là vô tận 3. đồ thị tầm thườngMột đồ thị G= (V, E) là tầm thường nếu nó chỉ chứa một đỉnh duy nhất và không có cạnh nào 4. đồ thị đơn giảnNếu mỗi cặp nút hoặc đỉnh của đồ thị G=(V,E) chỉ có một cạnh thì đó là đồ thị đơn. Kết quả là, chỉ có một cạnh nối hai đỉnh, mô tả tương tác một đối một giữa hai phần tử Khóa học mới. Phát triển Full Stack cho người mới bắt đầuTìm hiểu Git Command, Angular, NodeJS, Maven và hơn thế nữa Đăng ký ngay5. đa đồ thịNếu có vô số cạnh nằm giữa một cặp đỉnh của đồ thị G= (V, E) thì đồ thị đó được gọi là đa đồ thị. Không có vòng lặp tự trong Multigraph 6. đồ thị rỗngĐó là phiên bản làm lại của một biểu đồ tầm thường. Nếu một số đỉnh nhưng không có cạnh nào kết nối chúng, đồ thị G= (V, E) là đồ thị rỗng. 7. Đồ thị hoàn chỉnhNếu một đồ thị G= (V, E) cũng là một đồ thị đơn giản thì nó hoàn thành. Sử dụng các cạnh, với n số đỉnh phải được kết nối. Nó còn được gọi là đồ thị đầy đủ vì bậc của mỗi đỉnh phải là n-1 8. đồ thị giảNếu một đồ thị G= (V, E) chứa một vòng lặp bên cạnh các cạnh khác, thì đó là đồ thị giả 9. đồ thị thông thườngNếu đồ thị G= (V, E) là đồ thị đơn có cùng bậc tại các đỉnh thì đó là đồ thị chính quy. Kết quả là mọi đồ thị đều là đồ thị chính quy 10. Đồ thị có trọng sốĐồ thị G= (V, E) được gọi là đồ thị có nhãn hoặc trọng số vì mỗi cạnh có một giá trị hoặc trọng số biểu thị chi phí đi qua cạnh đó 11. đồ thị có hướngĐồ thị có hướng còn được gọi là đồ thị ghép, là một tập hợp các nút được nối với nhau bởi các cạnh, mỗi cạnh có một hướng 12. đồ thị vô hướngMột đồ thị vô hướng bao gồm một tập hợp các nút và liên kết kết nối chúng. Thứ tự của hai đỉnh được kết nối là không liên quan và không có hướng. Bạn có thể tạo một đồ thị vô hướng với số đỉnh và cạnh hữu hạn 13. Biểu đồ được kết nốiNếu có một đường dẫn giữa một đỉnh của cấu trúc dữ liệu biểu đồ và bất kỳ đỉnh nào khác, biểu đồ được kết nối 14. Đồ thị bị ngắt kết nốiKhi không có cạnh nối các đỉnh, bạn gọi đồ thị null là đồ thị không liên kết Khóa học Full Stack Web DeveloperĐể trở thành chuyên gia về MEAN Stack Xem khóa học15. đồ thị tuần hoànNếu một đồ thị chứa ít nhất một chu trình đồ thị thì nó được coi là đồ thị tuần hoàn 16. đồ thị tuần hoànKhi không có chu trình nào trong đồ thị, nó được gọi là đồ thị tuần hoàn 17. Đồ thị tuần hoàn có hướngNó còn được gọi là đồ thị tuần hoàn có hướng (DAG) và là đồ thị có các cạnh có hướng nhưng không có chu trình. Nó đại diện cho các cạnh bằng cách sử dụng một cặp đỉnh có thứ tự vì nó định hướng các đỉnh và lưu trữ một số dữ liệu 18. đồ thị conCác đỉnh và cạnh của một đồ thị là tập con của một đồ thị khác được gọi là đồ thị con Sau khi bạn tìm hiểu về nhiều loại biểu đồ trong biểu đồ trong cấu trúc dữ liệu, bạn sẽ chuyển sang thuật ngữ biểu đồ Thuật ngữ của đồ thị trong cấu trúc dữ liệuSau đây là các thuật ngữ cơ bản của đồ thị trong cấu trúc dữ liệu
Sau đó, bạn sẽ xem biểu diễn đồ thị trong hướng dẫn cấu trúc dữ liệu này khóa học miễn phí. Nguyên tắc cơ bản về lập trìnhTìm hiểu kiến thức cơ bản về lập trình Đăng ký ngayBiểu diễn đồ thị trong cấu trúc dữ liệuĐồ thị trong cấu trúc dữ liệu được sử dụng để biểu diễn mối quan hệ giữa các đối tượng. Mỗi đồ thị bao gồm một tập hợp các điểm được gọi là đỉnh hoặc nút được kết nối bởi các đường được gọi là cạnh. Các đỉnh trong một mạng đại diện cho các thực thể Các biểu diễn đồ thị thường xuyên nhất là hai biểu diễn theo sau
Bạn sẽ xem xét hai cách biểu diễn đồ thị này trong cấu trúc dữ liệu chi tiết hơn Ma trận kề
Biểu diễn đồ thị vô hướngBiểu diễn đồ thị có hướngBiểu diễn đồ thị vô hướng có trọng sốTrọng số hoặc chi phí được biểu thị ở cạnh của biểu đồ, biểu đồ có trọng số biểu thị các giá trị này trong ma trận Khóa học Lập trình viên Java Full StackHợp tác với HIRIST và HackerEarth KHÓA HỌC KHÁM PHÁDanh sách kề
Biểu diễn đồ thị vô hướng có trọng số bằng danh sách liên kếtBiểu diễn đồ thị vô hướng có trọng số bằng cách sử dụng một mảngBây giờ bạn sẽ thấy tất cả các thao tác nào được thực hiện trong cấu trúc dữ liệu đồ thị sau khi hiểu cách biểu diễn đồ thị trong cấu trúc dữ liệu cũng đọc. Danh sách liên kết trong cấu trúc dữ liệu Thao tác trên đồ thị trong cấu trúc dữ liệuCác thao tác bạn thực hiện trên biểu đồ trong cấu trúc dữ liệu được liệt kê bên dưới
Bạn sẽ đi chi tiết từng thao tác một Tạo đồ thịCó hai kỹ thuật để tạo biểu đồ 1. Ma trận kềMa trận kề của một đồ thị có nhãn đơn giản, còn được gọi là ma trận kết nối, là một ma trận có các hàng và cột được gắn nhãn bởi các đỉnh của đồ thị và một vị trí 1 hoặc 0 tùy thuộc vào việc chúng có kề nhau hay không. 2. Danh sách kềMột đồ thị hữu hạn được biểu diễn bằng một danh sách kề, là một tập hợp các danh sách không có thứ tự. Mỗi danh sách không có thứ tự mô tả tập hợp các hàng xóm của một đỉnh cụ thể trong biểu đồ trong danh sách kề Khóa học mới. Phát triển Full Stack cho người mới bắt đầuTìm hiểu Git Command, Angular, NodeJS, Maven và hơn thế nữa Đăng ký ngayChèn đỉnhKhi bạn thêm một đỉnh mà sau khi giới thiệu một hoặc nhiều đỉnh hoặc nút, kích thước của biểu đồ sẽ tăng lên một, tăng kích thước của ma trận lên một ở cấp độ hàng và cột Xóa đỉnh
Đào tạo chứng chỉ Java MIỄN PHÍTìm hiểu từ A-Z về Java hơn bao giờ hết Đăng ký ngayChèn cạnhKết nối hai đỉnh được cung cấp có thể được sử dụng để thêm một cạnh vào biểu đồ Xóa cạnhKết nối giữa các đỉnh hoặc nút có thể được loại bỏ để xóa một cạnh Các loại thuật toán duyệt đồ thị sẽ được thảo luận tiếp theo trong các đồ thị trong hướng dẫn cấu trúc dữ liệu này Thuật toán duyệt đồ thịQuá trình truy cập hoặc cập nhật từng đỉnh trong biểu đồ được gọi là duyệt qua biểu đồ. Trình tự mà chúng truy cập các đỉnh được sử dụng để phân loại các giao dịch đó. Duyệt đồ thị là một tập con của duyệt cây Có hai kỹ thuật để thực hiện thuật toán duyệt đồ thị
Tìm kiếm theo chiều rộng hoặc BFSBFS là một kỹ thuật tìm kiếm để tìm một nút trong cấu trúc dữ liệu biểu đồ đáp ứng một bộ tiêu chí.
Thuật toán tìm kiếm theo chiều rộng Bước 1. Xem xét biểu đồ bạn muốn điều hướng Bước 2. Chọn bất kỳ đỉnh nào trong biểu đồ của bạn, giả sử v1, từ đó bạn muốn đi qua biểu đồ Bước 3. Kiểm tra hai cấu trúc dữ liệu bất kỳ để duyệt qua biểu đồ
Bước 4. Bắt đầu từ đỉnh, bạn sẽ thêm vào mảng đã thăm và sau đó, bạn sẽ thêm các đỉnh liền kề của v1 vào cấu trúc dữ liệu hàng đợi Bước 5. Bây giờ, sử dụng khái niệm FIFO, bạn phải xóa phần tử khỏi hàng đợi, đặt nó vào mảng đã truy cập, sau đó quay lại hàng đợi để thêm các đỉnh liền kề của phần tử đã xóa Bước 6. Lặp lại bước 5 cho đến khi hàng đợi không rỗng và không còn đỉnh nào cần thăm Tìm kiếm theo chiều sâu hoặc DFSDFS là một kỹ thuật tìm kiếm để tìm một nút trong cấu trúc dữ liệu biểu đồ đáp ứng một bộ tiêu chí.
Thuật toán tìm kiếm theo chiều sâu Bước 1. Xem xét biểu đồ bạn muốn điều hướng Bước 2. Chọn bất kỳ đỉnh nào trong biểu đồ của chúng tôi, giả sử v1, từ đó bạn muốn bắt đầu duyệt qua biểu đồ Bước 3. Kiểm tra hai cấu trúc dữ liệu bất kỳ để duyệt qua biểu đồ
Bước 4. Chèn v1 vào khối đầu tiên của mảng và đẩy tất cả các nút hoặc đỉnh liền kề của đỉnh v1 vào ngăn xếp Bước 5. Bây giờ, sử dụng nguyên tắc FIFO, bật phần tử trên cùng và đặt nó vào mảng đã truy cập, đẩy tất cả các nút lân cận của phần tử đã bật vào đó Bước 6. Nếu phần tử trên cùng của ngăn xếp đã có trong mảng, hãy loại bỏ nó thay vì chèn nó vào mảng đã truy cập Bước 7. Lặp lại bước 6 cho đến khi cấu trúc dữ liệu ngăn xếp không trống. Bây giờ bạn sẽ xem xét các ứng dụng của cấu trúc dữ liệu đồ thị sau khi hiểu thuật toán duyệt đồ thị trong hướng dẫn này Ứng dụng của đồ thị trong cấu trúc dữ liệuSau đây là một số ứng dụng của đồ thị trong cấu trúc dữ liệu
Cuối cùng, trong hướng dẫn này, bạn sẽ xem mã cho biểu đồ trong cấu trúc dữ liệu Thực thi mã của đồ thị trong cấu trúc dữ liệu#include #include #include #define V 6 // Xác định số đỉnh tối đa của đồ thị đồ thị cấu trúc // khai báo cấu trúc dữ liệu đồ thị { cấu trúc Nút * điểm [V]; }; struct Node // khai báo nút { điểm đến int; struct Node* tiếp theo; }; liên kết cấu trúc // khai báo cạnh { int nguồn, đích; }; struct graph* make_Graph(struct link edge[], int x) // hàm tạo đồ thị { int tôi; đồ thị cấu trúc* đồ thị = (đồ thị cấu trúc*)malloc(sizeof(đồ thị cấu trúc)); for (i = 0; i < V; i++) { đồ thị->điểm[i] = NULL; } cho (i = 0; i < x; i++) { nguồn int = các cạnh [i]. nguồn; int đích = cạnh [i]. điểm đến; struct Node* Node1 = (struct Node*)malloc(sizeof(struct Node)); Nút1->đích = đích; Nút1->tiếp theo = đồ thị->điểm[nguồn]; đồ thị->điểm[nguồn] = Nút1; } trả về đồ thị; } void displayGraph(struct graph* graph) // hàm xem đồ thị { int tôi; cho (i = 0; i < V; i++) { struct Node* ptr = graph->point[i]; trong khi (ptr. = KHÔNG) { printf("(%d —> %d)\t", i, ptr->đích); ptr = ptr->tiếp theo; } printf("\n"); } } int chính (khoảng trống) { cạnh liên kết cấu trúc [] = { { 0, 1 }, { 1, 3 }, { 3, 0 }, { 3, 4 }, { 4, 5 }, { 5, 6 } }; int n = sizeof(cạnh)/sizeof(cạnh[0]); đồ thị cấu trúc *graph = make_Graph(edges, n); displayGraph(đồ thị); trả về 0; } đầu ra (0 ù > 1) (1 ù > 3) (3 ù > 4) (3 ù > 0) (4 ù > 5) (5ù > 6) -------------------------------- Quá trình thoát sau 0. 06697 giây với giá trị trả về 0 Bấm phím bất kỳ để tiếp tục. . Nắm vững các công nghệ front-end và back-end cũng như các khía cạnh nâng cao trong Chương trình Sau đại học của chúng tôi về Phát triển Web Full Stack. Giải phóng sự nghiệp của bạn với tư cách là một nhà phát triển full stack chuyên nghiệp. Liên lạc với chúng tôi NGAY BÂY GIỜ Bước tiếp theoBạn đã học cấu trúc dữ liệu đồ thị là gì và nhiều loại cấu trúc dữ liệu đồ thị trong hướng dẫn “đồ thị trong cấu trúc dữ liệu” này. Sau đó, bạn đã tìm hiểu về phương pháp duyệt đồ thị, bao gồm các thuật toán tìm kiếm theo chiều rộng và chiều sâu trước, cũng như một số ứng dụng cấu trúc dữ liệu đồ thị "Tìm kiếm theo chiều rộng hoặc BFS" sẽ là chủ đề tiếp theo của bạn, nơi bạn sẽ tìm hiểu về thuật toán tìm kiếm theo chiều rộng và cách duyệt cấu trúc dữ liệu dạng cây và biểu đồ bằng BFS. Nếu bạn muốn tìm hiểu thêm về cấu trúc dữ liệu và ngôn ngữ lập trình, hãy xem Chương trình sau đại học về phát triển toàn bộ ngăn xếp của simplilearn có thể là thứ bạn cần. Bootcamp được cung cấp với sự cộng tác của Caltech CTME và sẽ cung cấp cho bạn các kỹ năng phát triển phần mềm sẵn sàng cho công việc, chứng chỉ ngành và sự công nhận toàn cầu mà bạn cần để thành công ngay bây giờ Nếu bạn có bất kỳ nghi ngờ nào liên quan đến bài viết "đồ thị trong cấu trúc dữ liệu", vui lòng hỏi trong phần bình luận bên dưới. Chúng tôi sẽ sẵn lòng giải quyết vấn đề của bạn ngay khi có thể. Cho đến lúc đó, hãy theo dõi kênh của Simplilearn và tiếp tục học hỏi câu hỏi thường gặp1. Cấu trúc dữ liệu đồ thị được sử dụng ở đâu trong cuộc sống thực?Bạn rất có thể sử dụng các nền tảng mạng xã hội như Facebook, LinkedIn, Instagram và các nền tảng khác. Một ví dụ tuyệt vời về biểu đồ được sử dụng là phương tiện truyền thông xã hội. Biểu đồ được sử dụng trong phương tiện truyền thông xã hội để chứa thông tin về từng người dùng. Mỗi người dùng là một nút trong trường hợp này, giống như trong Biểu đồ. Tương tự, Google Maps là một ứng dụng khác sử dụng biểu đồ. Trong trường hợp của Google Maps, mỗi địa điểm được gọi là một nút và các con đường kết nối chúng được gọi là các cạnh 2. Các loại biểu đồ khác nhau trong cấu trúc dữ liệu là gì?Biểu đồ là cấu trúc dữ liệu phi tuyến tính bao gồm các nút và cạnh. Chúng có nhiều dạng khác nhau. Cụ thể, chúng là Đồ thị hữu hạn, Đồ thị vô hạn, Đồ thị tầm thường, Đồ thị đơn giản, Đồ thị đa, Đồ thị không, Đồ thị đầy đủ, Đồ thị giả, Đồ thị thông thường, Đồ thị được dán nhãn, Đồ thị chữ ghép, Đồ thị con, Đồ thị được kết nối hoặc không kết nối và Đồ thị tuần hoàn 3. Có bao nhiêu loại biểu đồ trong cấu trúc dữ liệu?Chúng có từ 14 đến 15 loại. Tuy nhiên, đồ thị được sử dụng phổ biến nhất là đồ thị hữu hạn 4. Biểu đồ hoàn chỉnh trong cấu trúc dữ liệu là gì?Một đồ thị được coi là đầy đủ nếu giữa mọi cặp đỉnh của đồ thị đều tồn tại một cạnh. Nói cách khác, tất cả các đỉnh của đồ thị được kết nối với các đỉnh còn lại của đồ thị. Một đồ thị đầy đủ của 'n' đỉnh có chính xác nC2 cạnh và được viết là Kn 5. Đồ thị tuần hoàn có hướng là gì?Đồ thị tuần hoàn có hướng (DAG) là đồ thị có hướng và không có chu trình liên kết các cạnh khác trong khoa học máy tính và toán học. Điều này chỉ ra rằng việc duyệt toàn bộ đồ thị từ một cạnh là không thể. Các cạnh của đồ thị có hướng chỉ có thể di chuyển theo một hướng. Biểu đồ là một sắp xếp tô pô trong đó mỗi nút có một thứ tự cụ thể 6. Biểu đồ trong cấu trúc dữ liệu là gì?Biểu đồ là một loại cấu trúc dữ liệu phi tuyến tính được tạo thành từ các đỉnh và các cạnh. Các đỉnh còn được gọi là các nút, trong khi các cạnh là các đường hoặc cung liên kết hai nút bất kỳ trong mạng. Theo thuật ngữ kỹ thuật hơn, đồ thị bao gồm các đỉnh (V) và các cạnh (E). Biểu đồ được biểu diễn dưới dạng G(E, V) 7. Biểu đồ trong cấu trúc dữ liệu và ứng dụng của nó là gì?Đồ thị là một cấu trúc dữ liệu phi tuyến tính được tạo thành từ các đỉnh (hoặc nút) được liên kết bởi các cạnh (hoặc cung), có thể có hướng hoặc vô hướng. Đồ thị được sử dụng trong khoa học máy tính để mô tả luồng tính toán 8. Biểu đồ hữu ích như thế nào khi diễn giải dữ liệu?Đồ thị là một cách phổ biến để mô tả trực quan các kết nối dữ liệu. Mục tiêu của biểu đồ là truyền tải quá nhiều sự kiện phức tạp hoặc quá nhiều để có thể diễn đạt đầy đủ bằng từ ngữ và trong không gian ít hơn. Tuy nhiên, không sử dụng biểu đồ cho lượng dữ liệu nhỏ có thể được diễn đạt bằng một cụm từ Thông tin về các Tác giảRavikiran ASRavikiran A S làm việc với Simplilearn với tư cách là Nhà phân tích nghiên cứu. Anh ấy là một người đam mê nhiệt tình, luôn săn lùng những công nghệ mới nhất. Anh ấy thành thạo Ngôn ngữ lập trình Java, Dữ liệu lớn và các Khung dữ liệu lớn mạnh mẽ như Apache Hadoop và Apache Spark Cấu trúc dữ liệu nào là tốt nhất cho biểu đồ?Một biểu đồ có thể được biểu diễn bằng 3 cấu trúc dữ liệu- ma trận kề, danh sách kề và tập kề . Một ma trận kề có thể được coi như một bảng với các hàng và cột. Nhãn hàng và nhãn cột đại diện cho các nút của biểu đồ.
Thuật toán đồ thị trong Python là gì?Các thuật toán trong đồ thị bao gồm tìm đường đi giữa hai nút, tìm đường đi ngắn nhất giữa hai nút, xác định chu trình trong biểu đồ (chu trình là đường đi không rỗng từ nút đến chính nó), tìm đường đi đến tất cả các nút (thuật toán nổi tiếng
Python có cấu trúc dữ liệu đồ thị không?Đồ thị trong Python có thể được biểu diễn theo nhiều cách khác nhau. Những cái đáng chú ý nhất là ma trận kề, danh sách kề và danh sách cạnh . Trong hướng dẫn này, chúng tôi sẽ đề cập đến tất cả chúng. Khi triển khai biểu đồ, bạn có thể chuyển đổi giữa các loại biểu diễn này một cách thoải mái.
4 cấu trúc dữ liệu trong Python là gì?Cấu trúc dữ liệu Python cơ bản trong Python bao gồm danh sách, bộ, bộ và từ điển . Mỗi cấu trúc dữ liệu là duy nhất theo cách riêng của nó. |