如何操作邻接矩阵

r3i60tvu  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(150)

我在找到我需要的解决方案时遇到了一些问题。我需要做的是一个算法,它以邻接矩阵结构数据的形式返回来自社交网络的顶级用户之间的共同朋友。下面的代码统计每个用户(我称之为line)有多少个朋友。
如何从矩阵中的n个流行用户中获得共同的朋友?

public List<User> mutualFriends (AdjacencyMatrixGraph<User,Relationship> friendshipGraph, int n){
        int numero;
        for (User line : friendshipGraph.vertices()) {
            numero = 0;
            for (Relationship column : friendshipGraph.edges()) {
                if (column.getUser2() != null) {
                    numero++;
                    friendshipGraph.toIndex(line);
                    line.addRelationship(column);
                    line.setAmigosUser(numero);
                    popularity.remove(line);
                    popularity.add(line);
                }
            }
        }
        popularity.sort(morePopulars);

        nPopularity(n);

        for (User u : nPopularity){
            friendshipGraph.directConnections(u);
            int i=0;
            for (User popular : nPopularity){

            }
        }

    return mutualFriends(friendshipGraph, n);
    }

    public List<User> nPopularity(int n){

        nPopularity = new ArrayList<>();
        for (int i = 0; i < n; i++){
          //  nPopularity.set(i) = popularity.get(i);
        }
        return nPopularity;
    }

    public static Comparator<User> morePopulars = new Comparator<User>(){
        @Override
        public int compare(User u1, User u2) {
            int  cmp = Integer.compare(u2.getAmigosUser(), u1.getAmigosUser());
            return cmp;
        }

    };

现在我有了这个。我不知道最后一步是什么。如果我要比较哪一个的定向连接的结果。或者如果我要搜索n个出现在所有行中的用户,那就叫做mutual。有人能帮我吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题