即使我提供的限制(n变量)不是2,该代码也只接受2个值。
我无法理解Graph()
#include "iostream"
using namespace std;
class Node
{
private:
int data;
Node *next;
friend class Graph;
};
class Graph
{
private:
Node *head[20];
int n;
public:
Graph();
void insert_node(Node *head);
void insert_vertices(Node *ver);
};
Graph :: Graph()
{
cout<<"\nEnter Number of Nodes:";
cin>>n;
head[n] = new Node();
for(int i = 0; i < n; i++)
{
cout<<"\nEnter The Head_node:";
cin>>head[i]->data;
head[i]->next = NULL;
}
}
int main() {
Graph g;
return 0;
}
答案 0 :(得分:0)
问题在于,您在尝试设置节点的数据之前并未初始化大多数节点。您正在尝试使用指针,而不首先使它们实际上指向任何东西。您可以通过初始化循环中的节点来解决此问题。这是循环的更新版本:
for (int i = 0; i < n; i++)
{
cout << "\nEnter The Head_node:";
head[i] = new Node();
cin >> head[i]->data;
head[i]->next = NULL;
}