Biểu diễn đồ thị có hướng bằng danh sách kề

Các ac chỉ em cách làm bài này với ạ.Code C

Biểu diễn đồ thị có hướng bằng danh sách kề (1.dữ liệu sinh ngẫu nhiên, 2.dl nhập từ bàn phím, 3.dữ liệu được tổ chức,4. dl được lưu trữ trên tệp tin).

Bạn làm được gì rồi?

5 Likes

phần sinh ngẫu nhiên chưa làm được

Vậy bạn hãy làm phần nhập dữ liệu lưu trữ trên tập tin.
Sau đó dựa theo cấu trúc tập tin này, sinh giá trị ngẫu nhiên ra 1 tập tin tạm.
Cuối cùng là nhập dữ liệu từ tập tin tạm kia là được rồi :wink:

4 Likes

có code vd cụ thể không ạ?

Bạn tự code nhé, mình cho cấu trúc và file ví dụ th. :slightly_smiling_face:

// cấu trúc của một đỉnh
typedef struct node {
  char[30] label;       // tên của một đỉnh
  int index;            // số thứ tự của đỉnh đó
  struct **node adjlist; // danh sách các đỉnh kề với nó
  int *weight;          // trọng số của cạnh (u, v_i) với u là đỉnh hiện tại, v_i là đỉnh thứ i trong danh sách kề ở trên
  int in_degree;        // bậc vào (không cần thiết lắm, có thể bỏ)
  int out_degree;       // bậc ra (như trên)
} node_t;

// cấu trúc của một đồ thị
typedef struct  graph {
  int n_v; // số đỉnh
  int n_e; // số cạnh (có thể tự tính được nên bỏ đi cũng k sao :v)
  node_t *v;  // danh sách các đỉnh
} graph_t;

Input file (nhớ bỏ phần comment đi. :v)

7 // số đỉnh
A B C // tức A có đường đi tới B và C là cung AB và AC
B D   // cung BD
C F   // cung CF
D E   // cung DE
E C G // cung EC và EG
F     // không có đường ra từ F (có thể bỏ dòng này cũng được)
G F   // cung GF

Đồ thị cho file trên

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