我目前有使用深度優先搜索算法的問題。該場景是該用戶有一個好友列表。並且只有在接收者是你的朋友或朋友朋友的朋友等的情況下才可以發送消息。然後你可以發送消息。有點像在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
以及它不工作。那就是我的問題:) –
順便謝謝!我完全錯過了它 –