我目前有使用深度优先搜索算法的问题。该场景是该用户有一个好友列表。并且只有在接收者是你的朋友或朋友朋友的朋友等的情况下才可以发送消息。然后你可以发送消息。有点像在Facebook上我猜。 我做了什么至今:java中的深度优先搜索
public boolean sendMessage(Message message, User receiver) {
Stack s = new Stack();
if(this.getFriends().size() > 0){
return false;
}else if(this.getFriends().contains(receiver)){
receiver.getMessagebox().add(message);
this.getMessagebox().add(message);
return true;
}else if(checkFriendsCircle(receiver,this,s)){
receiver.getMessagebox().add(message);
this.getMessagebox().add(message);
return true;
}else{
return false;
}
}
private boolean checkFriendsCircle(User receiver, User user, Stack s){
ArrayList<User> friendslist = user.getFriends();
if(!s.contains(this)){
s.push(this);
}
for (User user2 : friendslist) {
if(!s.contains(user2)){
if(user2.getFriends().contains(receiver)){
return true;
}else{
checkFriendsCircle(receiver,user2,s);
}
}
}
return false;
}
究竟是什么问题?顺便说一句,我认为这可能是第3行你想检查'.size()<= 0' ... – sleepy42
以及它不工作。那就是我的问题:) –
顺便谢谢!我完全错过了它 –