Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm duyệt tốt nhất trên trang web của chúng tôi. Bằng cách sử dụng trang web của chúng tôi, bạn thừa nhận rằng bạn đã đọc và hiểu chính sách và chính sách bảo mật cookie của chúng tôi

Bắt đầu hành trình mã hóa của bạn ngay bây giờ!

Việc sử dụng đồ thị trong cấu trúc dữ liệu là gì?V ) and a set of edges( E ). The graph is denoted by G(E, V).

Các thành phần của đồ thị

  • Các đỉnh: đỉnh là đơn vị cơ bản của biểu đồ. Đôi khi, các đỉnh còn được gọi là đỉnh hoặc nút. Mỗi nút/đỉnh có thể được dán nhãn hoặc không ghi nhãn. Vertices are the fundamental units of the graph. Sometimes, vertices are also known as vertex or nodes. Every node/vertex can be labeled or unlabelled.
  • Các cạnh: Các cạnh được vẽ hoặc sử dụng để kết nối hai nút của đồ thị. Nó có thể được đặt hàng cặp nút trong một biểu đồ có hướng. Các cạnh có thể kết nối bất kỳ hai nút theo bất kỳ cách nào có thể. Không có quy định. Đôi khi, các cạnh còn được gọi là cung. Mỗi cạnh có thể được dán nhãn/không ghi nhãn. Edges are drawn or used to connect two nodes of the graph. It can be ordered pair of nodes in a directed graph. Edges can connect any two nodes in any possible way. There are no rules. Sometimes, edges are also known as arcs. Every edge can be labeled/unlabelled.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

Các loại đồ thị

1. Đồ thị null

Một biểu đồ được gọi là biểu đồ null nếu không có các cạnh trong biểu đồ.

2. Đồ thị tầm thường

Biểu đồ chỉ có một đỉnh duy nhất, nó cũng là biểu đồ nhỏ nhất có thể.

 

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

3. Đồ thị không mong muốn

Một biểu đồ trong đó các cạnh không có bất kỳ hướng nào. Đó là các nút là các cặp không có thứ tự trong định nghĩa của mọi cạnh. & NBSP;

4. Đồ thị được định hướng

Một biểu đồ trong đó cạnh có hướng. Đó là các nút được đặt hàng các cặp trong định nghĩa của mọi cạnh.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

5. Đồ thị được kết nối

Biểu đồ trong đó từ một nút chúng ta có thể truy cập bất kỳ nút nào khác trong biểu đồ được gọi là biểu đồ được kết nối. & NBSP;

6. Đồ thị bị ngắt kết nối

Biểu đồ trong đó ít nhất một nút không thể truy cập được từ một nút được gọi là biểu đồ bị ngắt kết nối.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

7. Đồ thị thông thường

Biểu đồ trong đó mức độ của mỗi đỉnh bằng với các đỉnh khác của đồ thị. Đặt mức độ của mỗi đỉnh là k sau đó là biểu đồK then the graph

8. Hoàn thành đồ thị

Biểu đồ trong đó từ mỗi nút có một cạnh với nút khác.

.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

9. Đồ thị chu kỳ

Biểu đồ trong đó biểu đồ là một chu kỳ trong chính nó, mức độ của mỗi đỉnh là 2. & nbsp;

10. Đồ thị theo chu kỳ

Một biểu đồ chứa ít nhất một chu kỳ được gọi là biểu đồ tuần hoàn.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

11. Đồ thị Acyclic được định hướng

Một biểu đồ được định hướng không chứa bất kỳ chu kỳ nào. & Nbsp;

12. Biểu đồ bipartite

Một biểu đồ trong đó đỉnh có thể được chia thành hai bộ sao cho đỉnh trong mỗi bộ không chứa bất kỳ cạnh nào giữa chúng.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

13. Đồ thị có trọng số

  • & nbsp; Một biểu đồ trong đó các cạnh đã được chỉ định với trọng lượng phù hợp được gọi là biểu đồ có trọng số. & NBSP;A graph in which the edges are already specified with suitable weight is known as a weighted graph. 
  • & nbsp; đồ thị có trọng số có thể được phân loại thêm theo các biểu đồ có trọng số theo hướng và đồ thị có trọng số không mong muốn. & nbsp;

Biểu đồ cây v/s

Cây là các loại đồ thị bị hạn chế, chỉ với một số quy tắc hơn. Mỗi cây sẽ luôn là một biểu đồ nhưng không phải tất cả các biểu đồ sẽ là cây. Danh sách, cây và đống được liên kết đều là trường hợp đặc biệt của đồ thị. & NBSP;

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

Đại diện của đồ thị

Có hai cách để lưu trữ một biểu đồ:

  • Ma trận kề
  • Danh sách kề

Ma trận kề

Danh sách kề

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

Danh sách kề

Trong phương pháp này, biểu đồ được lưu trữ dưới dạng ma trận 2D trong đó các hàng và cột biểu thị các đỉnh. Mỗi mục trong ma trận đại diện cho trọng lượng của cạnh giữa các đỉnh đó. & Nbsp;

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

Biểu đồ này được thể hiện dưới dạng một bộ sưu tập các danh sách được liên kết. Có một mảng con trỏ trỏ đến các cạnh được kết nối với đỉnh đó. & NBSP;

So sánh giữa Ma trận liền kề và danh sách phụ thuộc

Khi biểu đồ chứa một số lượng lớn các cạnh thì thật tốt khi lưu trữ nó dưới dạng ma trận vì chỉ một số mục trong ma trận sẽ trống. Một thuật toán như Ma trận liền kề Prim và Dijkstra được sử dụng để có độ phức tạp ít hơn.Ma trận kềDanh sách kề
Trong phương pháp này, biểu đồ được lưu trữ dưới dạng ma trận 2D trong đó các hàng và cột biểu thị các đỉnh. Mỗi mục trong ma trận đại diện cho trọng lượng của cạnh giữa các đỉnh đó. & Nbsp;Biểu đồ này được thể hiện dưới dạng một bộ sưu tập các danh sách được liên kết. Có một mảng con trỏ trỏ đến các cạnh được kết nối với đỉnh đó. & NBSP;Biểu đồ này được thể hiện dưới dạng một bộ sưu tập các danh sách được liên kết. Có một mảng con trỏ trỏ đến các cạnh được kết nối với đỉnh đó. & NBSP;
So sánh giữa Ma trận liền kề và danh sách phụ thuộcBiểu đồ này được thể hiện dưới dạng một bộ sưu tập các danh sách được liên kết. Có một mảng con trỏ trỏ đến các cạnh được kết nối với đỉnh đó. & NBSP;So sánh giữa Ma trận liền kề và danh sách phụ thuộc
Khi biểu đồ chứa một số lượng lớn các cạnh thì thật tốt khi lưu trữ nó dưới dạng ma trận vì chỉ một số mục trong ma trận sẽ trống. Một thuật toán như Ma trận liền kề Prim và Dijkstra được sử dụng để có độ phức tạp ít hơn.Hoạt độngSo sánh giữa Ma trận liền kề và danh sách phụ thuộc

Khi biểu đồ chứa một số lượng lớn các cạnh thì thật tốt khi lưu trữ nó dưới dạng ma trận vì chỉ một số mục trong ma trận sẽ trống. Một thuật toán như Ma trận liền kề Prim và Dijkstra được sử dụng để có độ phức tạp ít hơn.

Hoạt động

  • Thêm cạnh
  • O (1)
  • Loại bỏ và cạnh
  • TRÊN)

Khởi tạo

  • O (n*n)
  • Các hoạt động cơ bản trên đồ thị
  • Dưới đây là các hoạt động cơ bản trên biểu đồ:

Chèn các nút/cạnh vào biểu đồ - chèn một nút vào biểu đồ.

Xóa các nút/cạnh trong biểu đồ - Xóa một nút khỏi biểu đồ.

Hướng dẫn graph data structure in python geeksforgeeks - cấu trúc dữ liệu biểu đồ trong python geeksforgeeks

Tìm kiếm trên biểu đồ - Tìm kiếm một thực thể trong biểu đồ.

  • Truyền tải đồ thị - Đi qua tất cả các nút trong biểu đồ.
  • Sử dụng đồ thị
  • Bản đồ có thể được biểu diễn bằng cách sử dụng biểu đồ và sau đó có thể được sử dụng bởi các máy tính để cung cấp các dịch vụ khác nhau như đường dẫn ngắn nhất giữa hai thành phố.

Cấu trúc dữ liệu đồ thị trong Python là gì?

Biểu đồ là các cấu trúc dữ liệu phi tuyến tính được tạo thành từ hai thành phần chính: các đỉnh-đỉnh là các thực thể trong một biểu đồ. Mỗi đỉnh có một giá trị liên quan đến nó. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các đỉnh sẽ đại diện cho các thành phố.non-linear data structures made up of two major components: Vertices – Vertices are entities in a graph. Every vertex has a value associated with it. For example, if we represent a list of cities using a graph, the vertices would represent the cities.

Biểu đồ trong cấu trúc dữ liệu với ví dụ là gì?

Biểu đồ được sử dụng để đại diện cho các mạng.Các mạng có thể bao gồm các đường dẫn trong thành phố hoặc mạng điện thoại hoặc mạng mạch.Biểu đồ cũng được sử dụng trong các mạng xã hội như LinkedIn, Facebook.Ví dụ: trong Facebook, mỗi người được đại diện với một đỉnh (hoặc nút).used to represent networks. The networks may include paths in a city or telephone network or circuit network. Graphs are also used in social networks like linkedIn, Facebook. For example, in Facebook, each person is represented with a vertex(or node).

Việc sử dụng đồ thị trong cấu trúc dữ liệu là gì?

Biểu đồ trong cấu trúc dữ liệu được sử dụng để thể hiện mối quan hệ giữa các đối tượng.Mỗi biểu đồ bao gồm một tập hợp các điểm được gọi là các đỉnh hoặc nút được kết nối bởi các dòng được gọi là các cạnh.Các đỉnh trong một mạng đại diện cho các thực thể.to represent the relationships between objects. Every graph consists of a set of points known as vertices or nodes connected by lines known as edges. The vertices in a network represent entities.

Làm thế nào để bạn tạo một biểu đồ trong cấu trúc dữ liệu Python?

Tạo biểu đồ bằng từ điển trong Python ..
Đồ thị và các biểu diễn của nó ..
Thực hiện đồ thị bằng STL để lập trình cạnh tranh |Đặt 2 (đồ thị có trọng số).
Thực hiện đồ thị bằng STL để lập trình cạnh tranh |Đặt 1 (DFS của không có trọng số và không bị ảnh hưởng).
N Nữ hoàng vấn đề |Backtracking-3 ..