当前位置: 首页 > 知识库问答 >
问题:

使用邻接表向图中添加顶点

勾炳
2023-03-14

`使用命名空间标准;

class location
{
    public:
        int city;
};

class flightconnect
{
        int arvtime;
        int deptime;
        int arvcity;
    public:
        flightconnect(int _a, int _d, int _c)  { arvtime = _a;  deptime = _d;  arvcity = _c;}
        int getdeptime()        {  return deptime; }
        int getarvtime()        {  return arvtime; }
        int getarvcity()        {  return arvcity; }
};

struct graph
{
    location* vertex;
    list<flightconnect> *adj;
};

void addloc(int a,graph *flight)
{
    flight = new graph;
    flight->vertex->city=a;
    //what should come in the next line?
    flight->adj = flight->adj.append(a);
}

void addflight(int at,int dt,int a,int d,graph *flight)
{
    flightconnect node(at,dt,d);
    flight->adj[a].push_back(node);
}`

共有1个答案

田兴朝
2023-03-14

在函数void addloc(int a,graph*flight)中,您正在初始化图本身。

flight = new graph;

您应该初始化新城市的邻接列表。请参阅此处:C++列表和指针

您可以使用map将城市名称存储在字符串中。

 类似资料:
  • 作为一项练习,我必须建立一个卫星导航系统,规划从一个位置到另一个位置的最短和最快路线。它必须尽可能快,而不需要使用太多内存。 我很难决定使用哪种结构来表示图形。我知道矩阵更适合密集图,列表更适合稀疏图。我更倾向于使用列表,因为我认为添加顶点将是这个程序中最累人的部分。 我只是想听听你们的意见。如果我把一个典型的路线图看作一个图形,其中不同的位置是节点,道路是边缘。你认为它是稀疏的还是密集的?在这种

  • 在书中,他们做过这样的宣示: 我应该如何将下面图的输入作为邻接表并输出它的邻接表表示?假设,edge的每个成本是10。

  • 我刚开始使用图形,我正在尝试建立一个使用城市的邻接列表。这两个城市被发送到addRelations方法中。我试着说,如果已经没有一个顶点与第一个或最后一个字符串匹配,就用还不存在的字符串创建一个新顶点。现在,我得到的只是一个空指针异常在行的*。有没有人知道我做错了什么或者我应该做什么? 主:

  • 此图包含虚拟顶点。如何使用邻接表存储顶点的状态信息?应该存储每个顶点的输出边。 我用了简单的邻接表。但在这里,例如,v14有两组不同的输出边(一组没有输出边,另一组有两个输出边)。我应该使用什么数据结构来表示这样的虚拟节点。

  • 大家好:)今天我正在提高我在图论和数据结构方面的技能。我决定用C++做一个小项目,因为我已经有一段时间没有用C++了。 我想为一个有向图做一个邻接表。换句话说,看起来像: 这将是一个有向图,其中V0(顶点0)对V1和V3有一条边,V1对V2有一条边,V2对V4有一条边,如下所示:

  • B)设是带有向图(无环多边)的一个邻接矩阵,其中是边到的一个权重。如果没有这样的边并且对于evrey我们有。矩阵。槽表示什么?最小权重?还是...? 知道吗? 编辑:我的意思是这些算法在图中找到哪一个?找到最大重量?最小重量?什么也没找到?