Guest User

Untitled

a guest
May 8th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. #!/usr/bin/ruby
  2.  
  3. class User
  4. attr_reader :username, :name, :friends, :sex, :password
  5. attr_writer :username, :name, :friends, :sex, :password
  6.  
  7. def initialize(username,name,friends,sex,password)
  8. @username = username
  9. @name = name
  10. @friends = friends
  11. @sex = sex
  12. @password = password
  13. end
  14.  
  15. def to_out
  16. print("USERNAME #{@username} \nNAME #{@name} \nSEX #{@sex} \nPASSWORD #{@password} \nFRIENDS ")
  17. @friends.each {|key, value| print("#{key}/#{value} ") }
  18. print("\n")
  19. end
  20. end
  21.  
  22. def BFS(queue, visited, counts, currentlevel)
  23. counts[0] = 0
  24. currentlevel = 1
  25. counter = 0
  26. while not queue.empty?
  27. curr_user = queue.shift
  28. friends_hash = @@database[curr_user].friends
  29. friends_hash.each_key do |key|
  30. unless visited.has_key?(key) then
  31. counter++
  32. queue << key
  33. visited[temp] = currentlevel
  34. counts[currentlevel] = counter
  35. end
  36. end
  37. currentlevel++
  38. counter = 0
  39. end
  40. return counts
  41. end
  42.  
  43. @@database = {
  44. "bluehat" => User.new("bluehat", "Tom", {"lonelygirl13" => "dated", "nopants"=>"random"}, "Male", "aspal"),
  45. "lonelygirl13" => User.new("lonelygirl13", "Sara", {"redhat"=> "random", "greenhat"=>"family", "bluehat"=>"dated"}, "Female", "aspal"),
  46. "nopants" => User.new("nopants", "Bill", {"bluehat"=>"random", "cheeseboy"=>"group", "lonelygirl13" => "random"}, "Male", "aspal"),
  47. "greenhat" => User.new("greenhat", "John", { "lonelygirl13" => "family", "redhat" => "random"}, "Male", "aspal"),
  48. "redhat" => User.new("redhat", "David", {"lonelygirl13" => "random", "greenhat" => "random"}, "Male", "sailorboy"),
  49. "cheeseboy" => User.new("cheeseboy", "Justin", {"nopants" => "group"}, "Male", "wood")
  50. }
  51.  
  52. que = ["bluehat"]
  53. counts = [0]
  54. visited = {"bluehat"=>0}
  55.  
  56. result = BFS(que , visited, counts, 0)
Add Comment
Please, Sign In to add comment