Skip to content

Instantly share code, notes, and snippets.

@felipeska
Last active August 29, 2015 14:03
Show Gist options
  • Save felipeska/bc5db44f59b2a0a9100f to your computer and use it in GitHub Desktop.
Save felipeska/bc5db44f59b2a0a9100f to your computer and use it in GitHub Desktop.
SocialGraph
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
/**
* Created by felipecalderonbarragan on 7/7/14.
*/
public class Solution {
public static void main(String[] args) throws Exception{
new Solution();
}
public Solution(){
Member felipe = new Member("Felipe", "felipeskabarragan@gmail.com");
felipe.friends = new ArrayList<Member>();
ArrayList<Member> l3 = new ArrayList<Member>();
l3.add(new Member("L3-B1", "L3B1@email.com"));
l3.add(new Member("L-B2", "L3B2@email.com"));
l3.add(new Member("L3-B3", "L3B3@email.com"));
Member l2b3 =new Member("Level2-B3", "L2B3@email.com");
l2b3.friends = l3;
ArrayList<Member> l2 = new ArrayList<Member>();
l2.add(new Member("L2-B1", "L2B1@email.com"));
l2.add(new Member("L2-B2", "L2B2@email.com"));
l2.add(l2b3);
Member m1b = new Member("L1-B", "B@email.com");
m1b.friends = l2;
felipe.friends.add(new Member("Level1-A", "A@email.com"));
felipe.friends.add(m1b);
printSocialGraph(felipe);
}
void printSocialGraph(Member member) {
Queue<Member> queue = new LinkedList<Member>();
queue.add(member);
while(queue.size() > 0) {
Member currentMember = queue.remove();
if (currentMember == null)
continue;
for(Member friend : currentMember.friends)
queue.add(friend);
System.out.println("Name: " +currentMember.name+ "Email: "+currentMember.email);
}
}
class Member {
String name;
String email;
List<Member> friends;
public Member(String name, String email){
this.name = name;
this.email = email;
this.friends = new ArrayList<Member>();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment