JAVA实现图的结构

/
///**
//        * 图的数据结构:采用邻接矩阵的存储方式来表示图中顶点之间的关系。实现有:求图的
// *
//         * @author timmy1 使用二维数组来存储图中顶点的关系:数字为0表示自己,最大值表示两个顶点之间不联通, -》求顶点的入度和出度
// *         -》顶点a到顶点b之间的权值 ==》先创建这个图
// */

    int[][] matrix;// 矩阵
    int MAX_VALUE = Integer.MAX_VALUE;
    int size;

    public void FromJava() {
        createGraph(5);
        ViseLog.i("顶点出度为:" +getVertexOutDegree(0));
        ViseLog.i("两个顶点之间的权值为:" +getVertexWeight(1, 2));
    }

    private void createGraph(int index) {
        size = index;
        matrix = new int[index][index];
        int[] a0 = { 0, MAX_VALUE, MAX_VALUE, MAX_VALUE, 6 };
        int[] a1 = { 9, 0, 3, MAX_VALUE, MAX_VALUE };
        int[] a2 = { 2, MAX_VALUE, 0, 5, MAX_VALUE };
        int[] a3 = { MAX_VALUE, MAX_VALUE, MAX_VALUE, 0, 1 };
        int[] a4 = { MAX_VALUE, MAX_VALUE, MAX_VALUE, MAX_VALUE, 0 };
        matrix[0] = a0;
        matrix[1] = a1;
        matrix[2] = a2;
        matrix[3] = a3;
        matrix[4] = a4;
    }
    /**
     * 获取顶点的出度
     * @param index
     * @return
     */
    public int getVertexOutDegree (int index ){
        int degree=0;
        for (int i=0;i<size;i++){
            if (matrix[i][0]>0&&matrix[i][0]<MAX_VALUE){
                degree++;
            }
        }
        return degree ;
    }

    public int getVertexWeight(int i,int j){
        int weight = matrix[i][j];
        weight = weight == 0? 0:weight== MAX_VALUE?-1:weight;
        return weight;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值