c++的图的邻接表表示方法实现

来源:互联网 发布:关口知宏五台山 编辑:程序博客网 时间:2024/05/17 01:39

图的在计算机中一般情况下有两种表示方式,邻接矩阵和邻接表两种方式,当图的边比较少的时候,用矩阵的方式会比较浪费较多的存储空间,所以此时最好用邻接表的方式,即用链表的方式来表示,有向图和无向图均可以表示。

代码块

例如:

#include <iostream>#include <cstdio>using namespace std;struct Edge{    int dest;//表示目标顶点    int value;//边的权值    Edge * link;//链表下一元素};int main(void){    int n;//顶点个数    cin>>n;    Edge* edge[n];    int u,v;    Edge *l;    //初始化邻接表    for(int i=0;i<n;i++){        edge[i]=NULL;    }    while(cin>>u>>v){        l=new Edge;        l->dest=v;        l->link=edge[u];        edge[u]=l;    }    cout<<"answer"<<endl;    for(int i=0;i<n;i++){        l=edge[i];        while(l){            //cout<<"answer"<<endl;            cout<<i<<" "<<l->dest<<endl;            l=l->link;        }    }}
0 0
原创粉丝点击