首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有泛型类型的二项式Min-Heap优先级队列

具有泛型类型的二项式Min-Heap优先级队列
EN

Stack Overflow用户
提问于 2016-12-14 23:42:40
回答 1查看 419关注 0票数 0

我目前正在实现具有泛型类型的二项式最小堆优先级队列。

我给出了以下binomialminheap.java:

代码语言:javascript
复制
class BinomialMinHeap <K extends Comparable<? super K>, P>
{

    public static class Entry <K, P> {
        private P priority;
        private K key;
        private Node<P, K> node;

        private Entry (K k, P p)
        {
            priority = p;
            key= k;
        }

        public P priority () { return priority; }
        public K key() { return key; }
    }

    private static class Node <K, P> {

        private Entry<K, P> entry;

        private Node<K, P> parent;
    .
        private Node<K, P> child;

        private Node<K, P> sibling;

        private int degree;

        private Node (Entry<K, P> e)
        {
            entry = e;
            e.node = this;
        }

        private P priority ()
        {
            return entry.priority;
        }
    }
}

如你所见,我有泛型类型P和K,这里的问题是,我不知道如何将泛型类型实现到我的二进制堆中。"Entry“、"Node”和"BinomialHeap“是如何协同工作的?

我从下面的构造函数和几个方法开始:

代码语言:javascript
复制
    private Node<P,D> Nodes;
    private int size;

    public BinomialMinHeap()
    {
        Nodes = null;
        size = 0;
    }

    public boolean isEmpty ()
    {
        return Nodes == null;
    }

    public int size()
    {
        return size;
    }

我必须添加以下方法:

代码语言:javascript
复制
boolean contains (Entry<K, P> e)
Entry<K, P> insert (K k, P p)
boolean changePriority (Entry<K, P> e, P p)
Entry<K, P> minimum ()
Entry<K, P> extractMinimum ()
boolean remove (Entry<K, P> e)
EN

回答 1

Stack Overflow用户

发布于 2016-12-15 01:15:30

最好先看看一些通用算法的实现,然后你就会对通用算法的实现有一个大概的了解。例如,下面是一些通用的排序算法。

Heap Sort

Insertion Sort

Selection Sort

Merge Sort

Quick Sort

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41146580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档