``小编很懒,只做了一个无权图的算法,有权图也类似呦。
点和线就构成了图,人与人之间总是可以构成一个关系网络的,这就是一个图。
先看看小编的person类吧
public class Person {
private final String name;
ArrayList<Person> list=new ArrayList<Person>();
public Person(String name) {
this.name=name;
}
public void friend(Person fname) {
this.list.add(fname);
}
public ArrayList<Person> friendship() {
return list;
}
public String n() {
return name;
}
}
小编在类中定义了一个列表来存放这个人的朋友,因此就不用再定义边了。
在关系图这个类中:
public void addVertex(Person name) {
list1.add(name);
}
public ArrayList<Person> GetArray()
{
return list1;
}
public void addEdge(Person name1,Person name2){
list1.get(list1.indexOf(name1)).friend(name2);
list1.get(list1.indexOf(name2)).friend(name1);
}
在FriendShip类中定义了加入人、加入关系的函数,就相当于添加点和边。
弗洛伊德算法的原理可以从这里看