使用邻接列表将顶点添加到图形
Adding a vertex to a graph using adjacency list
我是编码新手,这是我第一次尝试图形。基本上,我必须使用图表找到两个位置之间的最短路径。到达时间和离开时间将提供给我们。我在创建图表时遇到问题。在 void addloc 函数中,我想在每次添加新位置时将位置添加到邻接列表数组中。我该怎么做?如果有人能告诉我如何将城市保留为字符串而不是 int,那将非常有帮助。如果我将它们保留为字符串,则无法使用该列表,因为它仅将 int 或枚举作为输入。
' 使用命名空间标准;
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);
}`
在函数 void addloc(int a,graph *flight)
中,您正在初始化图本身。
flight = new graph;
您应该初始化新城市的邻接列表。请参阅此处:C++列表和指针
您可以使用地图在字符串中存储城市名称。
相关文章:
- 如何循环打印顶点结构
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- 通过相邻顶点列表添加和减去图形中的边
- 使用C 中的邻接列表在图中添加顶点
- 将边缘节点添加到没有边缘的顶点时出现 Seg 错误
- 尝试将顶点添加到自定义Graph数据结构时出现分段错误
- 使用邻接列表将顶点添加到图形
- 将自定义属性添加到Boost图库中的网格顶点
- 当添加一条边时,使提升图仅包含两个顶点
- 在3D结构中添加新的顶点
- 添加一个外部属性以包含图中顶点的索引(boost)
- 如何在c++中使用igraph_add_vertices添加顶点后获得igraph顶点id
- OpenGL -添加顶点