Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.77 KB | None | 0 0
  1. public int getSubHeap(int idx, V[] vet){
  2.     HeapPriorityQuere<K,V> toClone = this.clone();
  3.     List<K> values = new ArrayList<>();
  4.     while(!toClone.isEmpty()){
  5.         values.add(toClone.removemin().getKey());
  6.     }
  7.     //put in order
  8.     K first = values.remove(0);
  9.     values.add(first);
  10.     values = Lists.reverse(values);
  11.     List<K> toAdd = new ArrayList<>();
  12.     if(values.get(idx) != null){
  13.         // recursive;
  14.         recursive (toAdd,values,idx);
  15.     }
  16.     for(int i = 0; i< toAdd.size(); i++){
  17.         vet[i] = toAdd.get(i);
  18.     }
  19.     return toAdd.size();
  20. }
  21.  
  22. private void recursive(List<K> toAdd,List<K> values, int idx){
  23.     toAdd.add(values.get(idx))
  24.     if(values.get(2*(idx+1)-1) != null){
  25.         recurisve(toAdd,values,2*(idx+1)-1);
  26.         if(values.get(2*(idx+1) != null){
  27.             recurisve(toAdd,values,2*(idx+1));
  28.         }
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement