类 MinPQ<Key>

  • 类型参数:
    Key - the generic type of key on this priority queue
    所有已实现的接口:
    java.lang.Iterable<Key>

    public class MinPQ<Key>
    extends java.lang.Object
    implements java.lang.Iterable<Key>
    The MinPQ class represents a priority queue of generic keys. It supports the usual insert and delete-the-minimum operations, along with methods for peeking at the minimum key, testing if the priority queue is empty, and iterating through the keys.

    This implementation uses a binary heap. The insert and delete-the-minimum operations take logarithmic amortized time. The min, size, and is-empty operations take constant time. Construction takes time proportional to the specified capacity or the number of items used to initialize the data structure.

    For additional documentation, see Section 2.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.

    • 构造器概要

      构造器 
      构造器 说明
      MinPQ()
      Initializes an empty priority queue.
      MinPQ​(int initCapacity)
      Initializes an empty priority queue with the given initial capacity.
      MinPQ​(int initCapacity, java.util.Comparator<Key> comparator)
      Initializes an empty priority queue with the given initial capacity, using the given comparator.
      MinPQ​(java.util.Comparator<Key> comparator)
      Initializes an empty priority queue using the given comparator.
      MinPQ​(Key[] keys)
      Initializes a priority queue from the array of keys.
    • 方法概要

      修饰符和类型 方法 说明
      Key delMin()
      Removes and returns a smallest key on this priority queue.
      void insert​(Key x)
      Adds a new key to this priority queue.
      boolean isEmpty()
      Returns true if this priority queue is empty.
      java.util.Iterator<Key> iterator()
      Returns an iterator that iterates over the keys on this priority queue in ascending order.
      static void main​(java.lang.String[] args)
      Unit tests the MinPQ data type.
      Key min()
      Returns a smallest key on this priority queue.
      int size()
      Returns the number of keys on this priority queue.
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • 从接口继承的方法 java.lang.Iterable

        forEach, spliterator
    • 构造器详细资料

      • MinPQ

        public MinPQ​(int initCapacity)
        Initializes an empty priority queue with the given initial capacity.
        参数:
        initCapacity - the initial capacity of this priority queue
      • MinPQ

        public MinPQ()
        Initializes an empty priority queue.
      • MinPQ

        public MinPQ​(int initCapacity,
                     java.util.Comparator<Key> comparator)
        Initializes an empty priority queue with the given initial capacity, using the given comparator.
        参数:
        initCapacity - the initial capacity of this priority queue
        comparator - the order in which to compare the keys
      • MinPQ

        public MinPQ​(java.util.Comparator<Key> comparator)
        Initializes an empty priority queue using the given comparator.
        参数:
        comparator - the order in which to compare the keys
      • MinPQ

        public MinPQ​(Key[] keys)
        Initializes a priority queue from the array of keys.

        Takes time proportional to the number of keys, using sink-based heap construction.

        参数:
        keys - the array of keys
    • 方法详细资料

      • isEmpty

        public boolean isEmpty()
        Returns true if this priority queue is empty.
        返回:
        true if this priority queue is empty; false otherwise
      • size

        public int size()
        Returns the number of keys on this priority queue.
        返回:
        the number of keys on this priority queue
      • min

        public Key min()
        Returns a smallest key on this priority queue.
        返回:
        a smallest key on this priority queue
        抛出:
        java.util.NoSuchElementException - if this priority queue is empty
      • insert

        public void insert​(Key x)
        Adds a new key to this priority queue.
        参数:
        x - the key to add to this priority queue
      • delMin

        public Key delMin()
        Removes and returns a smallest key on this priority queue.
        返回:
        a smallest key on this priority queue
        抛出:
        java.util.NoSuchElementException - if this priority queue is empty
      • iterator

        public java.util.Iterator<Key> iterator()
        Returns an iterator that iterates over the keys on this priority queue in ascending order.

        The iterator doesn't implement remove() since it's optional.

        指定者:
        iterator 在接口中 java.lang.Iterable<Key>
        返回:
        an iterator that iterates over the keys in ascending order
      • main

        public static void main​(java.lang.String[] args)
        Unit tests the MinPQ data type.
        参数:
        args - the command-line arguments