python图的创建(邻接矩阵)

在python中的二维矩阵是使用两个列表完成的,该程序完成图的邻接矩阵表示也是使用同样的思想

'''邻接矩阵法完成图的表示'''

#创建图,输入图的顶点个数、顶点、以及创建邻接表和存储顶点的数组
class Graph(object):

    def __init__(self):
        self._count = int(input('输入图的顶点的个数:'))
        self._adjlist = [[None for i in range(self._count)] for i in range(self._count)]
        # 存储顶点
        self._peak_list = []
        for i in range(self._count):
            self._peak = input('输入顶点:')
            # 将顶点添加到数组中
            self._peak_list.append(self._peak)

    #顶点之间的关系
    def ad_relationship(self):
        print('输入顶点之间的关系')
        for i in range(self._count):
            # 顶点自身无连通,赋值为0
            self._adjlist[i][i] = 0
            for j in range(self._count):
                while self._adjlist[i][j] == None:
                    # 输入各个顶点之间的关系
                    msg = input('输入顶点%s--%s之间的关系(0表示无连通,1表示有连通)' % (self._peak_list[i],self._peak_list[j]))
                    if msg == '0' or msg == '1':
                        # 将输入的只填入邻接矩阵中
                        self._adjlist[i][j] = int(msg)
                        self._adjlist[j][i] = self._adjlist[i][j]
                    else:
                        print('输入有误....')
        #输出
        for k in range(self._count):
            print(self._adjlist[k])

if __name__ == '__main__':
    s = Graph()
    s.ad_relationship()



'''
输入图的顶点的个数:3
输入顶点:a
输入顶点:b
输入顶点:c
输入顶点之间的关系
输入顶点a--b之间的关系(0表示无连通,1表示有连通)1
输入顶点a--c之间的关系(0表示无连通,1表示有连通)1
输入顶点b--c之间的关系(0表示无连通,1表示有连通)0
[0, 1, 1]
[1, 0, 0]
[1, 0, 0]

'''
  • 9
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值