gon2

PriQueueMerge.java

Feb 28th, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1. import edu.princeton.cs.algs4.MaxPQ;
  2. import edu.princeton.cs.algs4.StdOut;
  3. import java.util.Iterator;
  4.  
  5. class PriQueueMerge {
  6.  
  7.     public static <Key> MaxPQ<Key> merge(MaxPQ<Key> pq1, MaxPQ<Key> pq2) {
  8.        
  9.         Iterator<Key> it1 = pq1.iterator(); // iterator fyrir sléttar
  10.         Iterator<Key> it2 = pq2.iterator(); // iterator fyrir odda
  11.        
  12.         MaxPQ<Key> temp = new MaxPQ<>(); // nýr hlutur fyrir merge-ið
  13.        
  14.         // bætum við sléttum:
  15.         while (it1.hasNext()) {
  16.             temp.insert(it1.next());
  17.         }
  18.         // bætum við odda:
  19.         while (it2.hasNext()) {
  20.             temp.insert(it2.next());
  21.         }
  22.        
  23.         return temp;
  24.     }
  25.    
  26.     public static void main(String[] args) {
  27.         /*
  28.          * Prófar sameiningaraðferðina fyrir forgangsbiðraðir
  29.          */
  30.  
  31.         // Búum til forgangsbiðröð oddatalna
  32.         MaxPQ<Integer> odds = new MaxPQ<>();
  33.         for (Integer i = 1; i < 10; i += 2) {
  34.             odds.insert(i);
  35.         }
  36.         // Búum til forgangsbiðröð sléttra talna
  37.         MaxPQ<Integer> evens = new MaxPQ<>();
  38.         for (Integer j = 0; j < 10; j += 2) {
  39.             evens.insert(j);
  40.         }
  41.         // Skoðum niðurstöðu sameiningarinnar
  42.         MaxPQ<Integer> numbersBelow10 = merge(odds, evens);
  43.         while (!numbersBelow10.isEmpty()) {
  44.             StdOut.print(numbersBelow10.delMax() + " ");
  45.         }
  46.         StdOut.println("");
  47.     }
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment