单链表 - 获取和添加方法



所以我正在尝试通过完成实现来实现一个 SLList 类:

get(i)set(i, x)add(i, x)remove(i)操作,每个操作都在O(1 + i(时间内运行。

我在程序中苦苦挣扎的是添加和获取方法。我一直incompatible types: SLList<T>.Node cannot be converted to int错误,也incompatible types: SLList<T>.Node cannot be converted to int.

我对如何解决它们感到非常困惑。我今天刚刚了解了链表,我正在努力掌握它们的概念。任何帮助或提示将不胜感激。

public T get(int i) {
// TODO: Implement this
Node u = head;
for(int j = 0; j < i; j++){
i = u.next;
}
return u;
if (i < 0 || i > n - 1) throw new IndexOutOfBoundsException();
return null;
}

public void add(int i, T x) {
Node u = new Node();
u.x = x;
if (i == 0) {
head = u;
} else {
tail.next = u;
}
tail = u;
i++;
return true;
if (i < 0 || i > n) throw new IndexOutOfBoundsException();
}

我应该提到每个函数的类型 T 和 void 必须保持原样。另外,我认为我应该在我的代码中包含IndexOutOfBoundsException部分。

如果你们想在这里查看我的完整代码:https://pastebin.com/nJ9iMjxj

node类中,next的类型是node,而在get方法中,您将node分配给整数变量:

i = u.next;

我没有看到你的整个实现,但我认为它应该是u = u.next;

get方法中,您尝试将Node分配给第 5 行的int变量。相反,你应该写u=u.next;

相关内容

  • 没有找到相关文章

最新更新