Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để Thực hiện Tô màu Đồ thị trên Đồ thị Bipartite


Đồ thị hai bên là đồ thị trong đó nếu có thể tô màu đồ thị bằng cách sử dụng hai màu, tức là; các đỉnh trong một tập hợp được tô cùng màu. Trong chương trình này, chúng ta lấy một đồ thị lưỡng phân làm màu đầu vào và đầu ra của mỗi đỉnh sau khi tô màu các đỉnh.

Thuật toán

 Begin Thuật toán BFS được sử dụng để duyệt qua tất cả các đỉnh. Lấy một đỉnh và tô màu nó màu vàng. Tô màu tất cả các đỉnh lân cận của nó là màu xanh lam. Tô màu cho các đỉnh cấp tiếp theo là màu vàng và cứ như vậy, cho đến khi tất cả các đỉnh đều được tô màu. 

Mã mẫu

 #include  using namespace std; int n, e, i, j; vector > g; vector  color; bool v [11101]; void c (int node, int n) {queue  q; if (v [nút]) return; màu [nút] =n; v [nút] =1; for (i =0; i > n>> e; cout <<"'Y' dành cho Màu Vàng và 'B' dành cho Màu Xanh lam."; cout <<"\ n"; g.resize (n); color.resize (n); memset (v, 0, sizeof (v)); for (i =0; i > a>> b; một--; b--; g [a] .push_back (b); g [b] .push_back (a); } c (0,1); for (i =0; i  

Đầu ra

 Nhập số đỉnh và số cạnh tương ứng:4 3'Y 'cho Màu vàng và' B 'cho Màu xanh lam Nhập đỉnh cạnh của cạnh 1:1 2 Nhập đỉnh cạnh của cạnh 2:3 2 Nhập đỉnh cạnh của cạnh 3:4 21 Y2 B3 B4 B