c++图的概念与代码

图的概念:

  图(graph)是由两个集合构成,一个是非空但有限的顶点集合V,另一个是描述顶点之间的关系。

图可以表示为G=(V,E)每条边是一顶点对(V,W)且V,WEV。通常用|V|表示顶点的数量,用|E|表示顶点的数量,用|E|表示边的数量

图是由顶点集合及顶点的关系组成的一种数据结构:G=(V,E),其中:顶点集合V={(x,y)|x,y|x,y属于V&&path(x,y)}是顶点间关系的有穷集合,也叫做边的集合。

顶点和边:

图中结点成为顶点,第i个顶点记为vi。两个顶点vi和vj之间有一条边,图中的第k条边记作ek,ek=(vi,vj)或<vi,vj>


代码

#include <iostream>
using namespace std;
//图的储存
//点集合 边集合 
const int vertex=10;//点的数量 
const int edge= vertex*(vertex-1);

int v[vertex];//点集合 v[i] 表示第i个节点编号是j

struct edges{//单条边结构体 
    int from;//该条边的左顶点 
    int to;//该条边的右顶点
    double w;//边的长度 
};
edges e[edge+1];//边集合 
int cnt=1;
void add(int u,int v,int w){
e[cnt].from=u;//记录第cnt条边的左项顶点是u 
e[cnt].to=v;//记录第cnt条边的右项顶点是v 
e[cnt].w=w;//记录第cnt条边的权值 
cnt++;//换下一条边去读 
}
int main() 
{
    for(int i=1;i<=5;i++){
        int u,v,w;
        cin>>u>>v>>w;//单向 
        add (u,v,w);//双向 
        add (v,u,w); 
    } 
    for(int i=1;i<=5;i++)printf("e[%d].from=%d,e[%d].to=%d",i,e[i].to) ;
    
    
    
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值