gpt4 book ai didi

java - 将 Double 转换为 Key(优先级队列)

转载 作者:行者123 更新时间:2023-12-02 01:17:09 25 4
gpt4 key购买 nike

我一直在互联网上进行广泛的搜索,寻找某种类型的问题答案,但我没有找到任何可以帮助我的东西。基本上我想知道的是是否可以将 double 转换为键,然后将其插入到优先级队列中。

这是我正在努力解决的方法来自文件名 MedianPQ.java 。就是这个:

public void insert(Double a){
if (size == 0 || a.compareTo(findMedian()) == 1) minPQ.insert(a);
else maxPQ.insert(a);
rearrange();
size++;
}

MinPQ.java中的插入方法文件看起来像这样:

public void insert(Key x) {
// double size of array if necessary
if (n == pq.length - 1) resize(2 * pq.length);

// add x, and percolate it up to maintain heap invariant
pq[++n] = x;
swim(n);
assert isMinHeap();
}

这是 MaxPQ.java 中的插入方法

public void insert(Key x) {

// double size of array if necessary
if (n == pq.length - 1) resize(2 * pq.length);

// add x, and percolate it up to maintain heap invariant
pq[++n] = x;
swim(n);
assert isMaxHeap();
}

它们是相同的。现在问题出现为 public void insert(Double a)来自MedianPQ.java不得更改。我必须接受一个 double ,然后将该 double 插入到 PQ 中。但是 MinPQ.java and MaxPQ.java 中的方法仅插入一把 key 。是否可以将 double 转换为 insert(Double a) 内的键方法???

最佳答案

您应该使用 Double 作为 MaxPQMinPQ 的泛型。为此,请尝试以下操作:

public static void main(String[] args) {
MedianPQ<Double> median = new MedianPQ<Double>(10, 20);
median.insert(1.1D);
median.insert(2.2D);
}

或者

private MaxPq<Double> left;
private MinPq<Double> right;

希望有帮助。

关于java - 将 Double 转换为 Key(优先级队列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58374668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com