C++ 对于图遍历,必须在节点中包含int m_id参数?

C++ 对于图遍历,必须在节点中包含int m_id参数?,c++,algorithm,list,graph,breadth-first-search,C++,Algorithm,List,Graph,Breadth First Search,我正在写一个BFS图遍历算法。使用邻接链表实现的图。对于图遍历,必须在节点中包含int m_id参数 template <class T> void graph<T>::bfs(int s, int& d) { bool used[m_vertex_sizes]; used[s] = true; int p[m_vertex_sizes]; p[s] = s; int dist[m_vertex_sizes]; di

我正在写一个BFS图遍历算法。使用邻接链表实现的图。对于图遍历,必须在节点中包含int m_id参数

template <class T>
void graph<T>::bfs(int s, int& d)
{
    bool used[m_vertex_sizes];
    used[s] = true;
    int p[m_vertex_sizes];
    p[s] = s;
    int dist[m_vertex_sizes];
    dist[s] = 0;
    std::queue<T> q;
    q.push(s);
    while(!q.empty())
    {
        int ii = q.front();
        q.pop();
        node<T>* t = m_adj[ii]->get_begin();
    /// for(int i = 0; i < m_adj[ii]->get_size(); ++i)
        for(; t != m_adj[ii]->get_end(); t = m_adj[ii]->get_next_node())
        {
        /****** int*/ v = m_adj[ii]->get_next_node(); // here I do not know how to get the node, may be need to have the id parameter in the node
            if(!used[v])
            {
                used[v] = true;
                p[v] = ii;
                dist[v] = dist[ii] + 1;
                d = dist[v];
                q.push(v);
            }
        }
    }
}

template <class T>
node<T>* get_next_node() const
{
    m_next = m_next->m_next;
    assert(m_next != 0);
    return m_next;
}
模板
void图::bfs(int-s,int-d)
{
布尔使用[m_顶点大小];
used[s]=真;
int p[m_顶点大小];
p[s]=s;
int dist[m_顶点大小];
距离[s]=0;
std::队列q;
q、 推;
而(!q.empty())
{
int ii=q.front();
q、 pop();
node*t=m_adj[ii]->get_begin();
///对于(int i=0;iget_size();++i)
对于(;t!=m_adj[ii]->get_end();t=m_adj[ii]->get_next_node())
{
/******int*/v=m_adj[ii]->get_next_node();//这里我不知道如何获取节点,可能需要在节点中包含id参数
如果(!used[v])
{
已用[v]=真;
p[v]=ii;
距离[v]=距离[ii]+1;
d=距离[v];
q、 推(v);
}
}
}
}
模板
节点*获取下一个节点()常量
{
m_next=m_next->m_next;
断言(m_next!=0);
下一步返回m_;
}

我在提供的代码中没有看到
m_id
任何地方。这里没有使用id。问题是节点的结构是否有参数m_id或布尔参数m_访问?您需要向我们展示节点的类声明、邻接列表等,因为您的问题是关于这些数据结构的。