为了账号安全,请及时绑定邮箱和手机立即绑定

单链表 - 获取和添加方法

单链表 - 获取和添加方法

守候你守候我 2023-10-13 16:19:29
所以我尝试通过完成实现来实现 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
查看完整描述

2 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

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

i = u.next;

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


查看完整回答
反对 回复 2023-10-13
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

在你的get方法中,你试图将 a 分配Nodeint第 5 行的变量。相反,你应该写u=u.next;



查看完整回答
反对 回复 2023-10-13
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信