【问题标题】:I am facing problem in creating a Graph implementation我在创建 Graph 实现时遇到问题
【发布时间】:2020-05-08 06:09:45
【问题描述】:

即使我提供的限制(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;
}

【问题讨论】:

    标签: c++ data-structures graph


    【解决方案1】:

    问题是您在尝试设置它们的数据之前没有初始化大多数节点。您正在尝试使用指针,而不是让它们首先实际指向任何东西。您可以通过初始化循环中的节点来解决此问题。这是循环的更新版本:

    for (int i = 0; i < n; i++)
    {
        cout << "\nEnter The Head_node:";
        head[i] = new Node();
        cin >> head[i]->data;
        head[i]->next = NULL;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-14
      • 2017-03-26
      • 2020-05-06
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多