Về cài đặt đồ thị bằng std::vector

Em có bài tập đồ thị, biết rằng luôn có đường đi từ s tới t, tìm đường đi có thứ tự từ điển nhỏ nhất. Input là số đỉnh, số cạnh và các cung. Theo như em được học thì nếu ta sắp xếp danh sách kề của mỗi đỉnh theo thứ tự tăng dần thì thuật toán DFS luôn trả về đường đi có thứ tự từ điển nhỏ nhất trong số tất cả các đường đi từ s tới tới t. Vấn đề là tụi em bắt buộc phải cài đặt danh sách kề bằng vector, mà em mù tịt phần này, gv cũng không chú trọng phần này lắm nên chịu chết.
Mọi người cho em xin code DFS bằng vector được không ạ?

Bài này nên dùng std::map với std::set :smiley: nếu không các bước sẽ như thế này:

  1. Khai báo class lồng trong class có thành phần là std::vector
  2. Khi dựng thành phần lồng nhớ std::sort
  3. Tìm kiếm bằng các hàm trong <algorithm> :slight_smile:

Để cài đặt thì có thể thêm một phương thức kiểm tra: tìm các cạnh mà điểm cuối không có trong đồ thị (tức là bị lỗi).

4 Likes

có thể giải thích rõ hơn giúp em được không ạ? em cảm ơn ạ :((

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?