Tôi đang cố triển khai biểu đồ trong C++. Tôi đại diện cho một nút trong biểu đồ bằng cách sử dụng một cấu trúc chứa hai biến -
a) một số nguyên chứa một số thông tin về nút.
b) danh sách chứa chỉ mục của đỉnh khác được kết nối với nó.
Sau đây là mã.Đồ thị sử dụng Danh sách Adjacency trong C++
// Graphs using adjacency list
#include <iostream>
#include <list>
#include <cstdlib>
using namespace std;
// structure to represent a vertex(node) in a graph
typedef struct vertex{
int info;
list<int> adj; // adjacency list of edges contains the indexes to vertex
} *vPtr;
int main(){
vPtr node = (vPtr)malloc(sizeof(struct vertex));
node->info = 34; // some arbitrary value
(node->adj).push_back(2); // trying to insert a value in the list
return 0;
}
Mã được biên dịch tốt nhưng tôi gặp phải lỗi thời gian chạy trong khi tôi đang đẩy lại phần tử trong danh sách. Có bất kỳ vấn đề nào trong cấu trúc của tôi không.
Tôi đang sử dụng các khối mã và trình biên dịch GNU GCC, C++ 98 để biên dịch mã của tôi.
Có điều gì đó thú vị về tuyên bố vPtr. – Jiminion
@Jim: Tôi không nghĩ vậy bởi vì mã chỉ đưa ra vấn đề khi tôi đẩy lùi trong danh sách. Nếu tôi loại bỏ dòng đó thì mã hoạt động tốt. – Nishant