gpt4 book ai didi

java - 用Java模拟链表

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

是否可以通过在类中嵌套类来模拟java中的链表?我试图实现,但求和函数没有通过第一类。无论给出什么整数,都会生成 1:

public class Example {
static class Item{
boolean b;
double d;
Item nextItem;
Item (boolean b, double d, Item nextItem) {
this.b = b;
this.d = d;
this.nextItem = nextItem;
}
}

static double f(Item item) {
if(item != null)
return (item.b ? item.d : 0.0) + f(item.nextItem);
else
return 0.0;
}

static public void main(String args[]) {
int n = Integer.parseInt(args[0]);
Item firstItem = null;
firstItem = new Item((1%2!= 0), Math.sqrt(1), null);
if(n > 1){
Item nextItem = firstItem.nextItem;
for (int i = 2; i <= n; i++) {
nextItem = new Item((i%2!=0), Math.sqrt(i), null);
nextItem = nextItem.nextItem;
}
}
double s = f(firstItem);
System.out.println("sum = " + s);
}
}

最佳答案

当然,您可以使用嵌套类来实现 LinkedList。有很多方法可以做到这一点。这里有一个例子:LinkedList example

但是你遇到的问题是变量firstItem永远不会改变。您在此处赋值:firstItem = new Item((1%2!= 0), Math.sqrt(1), null);
然后循环另一个始终为 null 的变量 Item nextItem = firstItem.nextItem;

如果您始终将构造函数的参数 nextItem 设置为 null,请将其删除。

关于java - 用Java模拟链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59942556/

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