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

用向量和对表示邻接表图

罗昱
2023-03-14

在书中,他们做过这样的宣示:

#include <iostream>
#include <vector>
using namespace std;
typedef pair<int, int> ii;
typedef vector<ii> vii;
vector <vii> AdjList;

我应该如何将下面图的输入作为邻接表并输出它的邻接表表示?假设,edge的每个成本是10。

共有1个答案

唐炳
2023-03-14
#include<iostream>
#include<vector>
using namespace std;
typedef vector<int> vi;
typedef pair<int,int> ii;
typedef vector<ii> vii;

int main()
{
   int n,m ; 
   cin>>n>>m;
   vector<vii> adjList(n+1); //For vertex 1...n
   //Reading edges for the input for graph
   for(int i=0;i<m;i++)
   {
      int u,v;
      cin>>u>>v;
    /*Here u->v is the edge and pair second term can be used to store weight in
      case of weighted graph.
    */
      adjList[u].push_back(make_pair(v,10));
   }
   //To print the edges stored in the adjacency list
   for(int i=1;i<=n;i++)
   {
       for(int j=0;j<(int)adjList[i].size();j++)
       {
           cout<<"Edge is "<<i<<" -> "<<adjList[i][j].first<<endl;
           cout<<"Weight is "<<adjList[i][j].second<<endl;
       }
   }
   return 0;
}
 类似资料:
  • 在斯坦福的一门算法课程中,教授为图的邻接表表示列出了以下成分: 顶点数组或列表 边的数组或列表 顶点列表中的每个顶点都指向其上的边。 边列表中的每个边都指向其边点。 这种表示法与图形的“关联表”表示法相同吗?如果是,为什么本文认为“邻接表”和“发生率表”是分开的?

  • 本文向大家介绍Dijkstra的邻接表表示算法,包括了Dijkstra的邻接表表示算法的使用技巧和注意事项,需要的朋友参考一下 有一个给定的图G(V,E)及其邻接列表表示形式,并且还提供了一个源顶点。Dijkstra的算法,用于找到源顶点与图G的任何其他顶点之间的最小最短路径。 为了解决这个问题,我们将使用两个列表。一种是存储已被视为最短路径树的顶点,另一种将保存尚未被考虑的顶点。在算法的每个阶段

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

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

  • 首先道歉,英语不是我的第一语言。 这是我对图的理解,它表示为形容词列表:它通常用于稀疏图,这是大多数图的情况,它使用V(顶点数)列表。因此,对于无向图,V个头指针+2e个(边数)节点。因此,空间复杂度=O(e+V),因为任何节点可以有多达V-1条边(不包括自身),所以检查节点邻接的时间复杂度为O(V)。 我想知道的是,有没有可能将列表(边缘节点)变成二叉树?因此,要确定A节点是否与B节点相邻,时间

  • 实现稀疏连接图的更空间高效的方法是使用邻接表。在邻接表实现中,我们保存Graph 对象中的所有顶点的主列表,然后图中的每个顶点对象维护连接到的其他顶点的列表。 在我们的顶点类的实现中,我们将使用字典而不是列表,其中字典键是顶点,值是权重。 Figure 4 展示了 Figure 2中的图的邻接列表示。 Figure 4 邻接表实现的优点是它允许我们紧凑地表示稀疏图。 邻接表还允许我们容易找到直接连