Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ee.ttu.algoritmid.bond;
- import java.util.HashMap;
- import java.util.Map;
- public class AL08 {
- public enum Network {
- FRIENDLY, UNFRIENDLY, UNKNOWN;
- }
- Map<String, Network> people;
- private DisjointSubsets disjointSubsets = new DisjointSubsets();
- public AL08() {
- people = new HashMap<>();
- addPerson("A");
- addPerson("U");
- friendly("A");
- unfriendly("U");
- }
- public DisjointSubsets getDisjointSubsets() {
- return disjointSubsets;
- }
- public void talkedToEachOther(String name1, String name2) {
- String rootOne = disjointSubsets.find(name1);
- String rootTwo = disjointSubsets.find(name2);
- if(people.get(rootOne) != people.get(rootTwo))
- {
- if(people.get(rootOne) == Network.UNKNOWN)
- {
- people.put(rootOne, people.get(rootTwo));
- }
- else
- {
- people.put(rootTwo, people.get(rootOne));
- }
- }
- disjointSubsets.union(name1,name2);
- }
- public void addPerson(String name) {
- disjointSubsets.addSubset(name);
- people.put(name, Network.UNKNOWN);
- }
- public void friendly(String name) {
- people.put(name, Network.FRIENDLY);
- }
- public void unfriendly(String name) {
- people.put(name, Network.UNFRIENDLY);
- }
- public Network memberOfNetwork(String name) {
- String root = disjointSubsets.find(name);
- return people.get(root);
- }
- public static void main(String[] args) {
- DisjointSubsets d = new DisjointSubsets();
- d.addSubset("P1");
- d.addSubset("P2");
- d.addSubset("P3");
- d.union("P2", "P1");
- d.union("P3", "P2");
- System.out.println("P3 root: " + d.find("P3")); // peaks olema P1
- d.addSubset("P11");
- d.addSubset("P12");
- d.addSubset("P13");
- d.addSubset("P14");
- d.union("P12", "P11");
- d.union("P13", "P12");
- d.union("P12", "P14");
- System.out.println("P13 root: " + d.find("P13")); // peaks olema P11
- System.out.println("\nP1 root before subsets join: " + d.find("P1")); // peaks olema P1
- d.union("P3", "P14");
- System.out.println("P1 root after subsets join: " + d.find("P1")); // peaks olema P11
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement