边集数组的实现

本文介绍了一种使用边集数组存储无向带权图的方法,并提供了详细的C++实现代码。通过输入边数及各边的头节点、尾节点和权值,可以创建并展示带权无向图的边集数组存储形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//无向带权图边集数组存储 
#include<cstdio>
#include<iostream>
#include<algorithm>

const int MAX = 100;  //最大边数 
using namespace std; 

typedef struct{
    int head,tail;                        //头节点,尾节点 
    int data;                             //权值,边信息 
}Edge;
Edge EdgeArray[MAX];//边组数组  用于存放边

int createEdge()                          //创建无向带权图的边数组存储 
{
    int n,i;
    printf("请输入带权图边数:");
    scanf("%d",&n);
    for(i = 1;i <= n;i++)
    {
        printf("请输入这条边的头,尾结点  以及最后的权值:\n");
        scanf("%d %d %d",&EdgeArray[i].head,&EdgeArray[i].tail,&EdgeArray[i].data);
    }
    
    return n;
}

int main()
{
    int n,i;
    n = createEdge(); 
    printf("有权无向图的边集数组存储:\n");
    for(i = 1;i <= n ;i++)
    {
        printf("%d---(%d)---%d",EdgeArray[i].head,EdgeArray[i].data,EdgeArray[i].tail);
        printf("\n");
    }
    
    return 0;
}

下面是测试的结果:

请输入带权图边数:2
请输入这条边的头,尾结点  以及最后的权值:
1 2 3
请输入这条边的头,尾结点  以及最后的权值:
1 3
2
有权无向图的边集数组存储:
1---(3)---2
1---(2)---3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值