Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java编程-循环链接列表_Java_Linked List - Fatal编程技术网

Java编程-循环链接列表

Java编程-循环链接列表,java,linked-list,Java,Linked List,我正在尝试编写一个java类循环列表,其中包含常用的节点内部类和实例变量:提示。。。循环列表应包含“下一个”和“上一个”,而不是“第一个”和“最后一个”。逻辑很重要提示。。。循环列表应包含“下一个”和“上一个”,而不是“第一个”和“最后一个”。逻辑很重要好的,我不会给你这个类的完整实现,但是我会给你一些建议 您不需要保留对最后一个元素的引用。将上一个和下一个引用放置到节点,最后一个节点将是第一个。上一个 除了循环列表没有结尾这一事实之外,它们与常规列表完全相同,但最后一项如下所示: Node t

我正在尝试编写一个java类循环列表,其中包含常用的节点内部类和实例变量:

提示。。。循环列表应包含“下一个”和“上一个”,而不是“第一个”和“最后一个”。逻辑很重要

提示。。。循环列表应包含“下一个”和“上一个”,而不是“第一个”和“最后一个”。逻辑很重要

好的,我不会给你这个类的完整实现,但是我会给你一些建议

  • 您不需要保留对最后一个元素的引用。将上一个和下一个引用放置到节点,最后一个节点将是第一个。上一个
  • 除了循环列表没有结尾这一事实之外,它们与常规列表完全相同,但最后一项如下所示:

    Node tmp = first;
    
    while ( tmp.Next != first )
       tmp = tmp.Next;
    
    节点tmp=第一

    while(tmp.Next!=null) tmp=tmp.Next

  • 在循环列表中,想法如下:

    Node tmp = first;
    
    while ( tmp.Next != first )
       tmp = tmp.Next;
    
    因为除非列表为空,否则永远找不到指向null的节点。最后一个建议是,如果您需要实现索引器,请记住在循环列表中没有索引超出范围这样的事情,因为

    list[count] = list[0] = list[count * k]
    
    请记住这一点,因此计算这些方法的索引可能相当棘手。对于正指数,主要思想是:

    index = index % count;
    
    对于消极的,则略有不同。我希望我能帮你说话。如果你想要一个实现,我相信如果你礼貌地问谷歌,应该有一些:)


    祝你好运

    好的,我不会给你这个类的完整实现,但是我会给你一些建议

  • 您不需要保留对最后一个元素的引用。将上一个和下一个引用放置到节点,最后一个节点将是第一个。上一个
  • 除了循环列表没有结尾这一事实之外,它们与常规列表完全相同,但最后一项如下所示:

    Node tmp = first;
    
    while ( tmp.Next != first )
       tmp = tmp.Next;
    
    节点tmp=第一

    while(tmp.Next!=null) tmp=tmp.Next

  • 在循环列表中,想法如下:

    Node tmp = first;
    
    while ( tmp.Next != first )
       tmp = tmp.Next;
    
    因为除非列表为空,否则永远找不到指向null的节点。最后一个建议是,如果您需要实现索引器,请记住在循环列表中没有索引超出范围这样的事情,因为

    list[count] = list[0] = list[count * k]
    
    请记住这一点,因此计算这些方法的索引可能相当棘手。对于正指数,主要思想是:

    index = index % count;
    
    对于消极的,则略有不同。我希望我能帮你说话。如果你想要一个实现,我相信如果你礼貌地问谷歌,应该有一些:)


    祝你好运

    我不确定你的问题是什么,你似乎拥有所需的一切。该链表与普通链表之间的唯一区别是添加到末尾

    在常规链接列表中,您将创建一个新节点,并使最后一个元素指向该节点。在这种情况下,将•最后一个节点中的指针更改为指向新节点,并使新节点指向•第一个节点

    删除的工作方式与普通链表相同。无论何时要删除一个节点,您都可以找到指向该节点的其他节点(上一个节点,或者在删除第一个节点的情况下,选中•最后一个节点),并使其指向要删除的节点所指向的位置

    如果这不能解决您的问题,请让我知道,我会尽力帮助您

    刚刚注意到有人已经问了完全相同的问题:

    我不确定你的问题是什么,你似乎拥有所需的一切。该链表与普通链表之间的唯一区别是添加到末尾

    在常规链接列表中,您将创建一个新节点,并使最后一个元素指向该节点。在这种情况下,将•最后一个节点中的指针更改为指向新节点,并使新节点指向•第一个节点

    删除的工作方式与普通链表相同。无论何时要删除一个节点,您都可以找到指向该节点的其他节点(上一个节点,或者在删除第一个节点的情况下,选中•最后一个节点),并使其指向要删除的节点所指向的位置

    如果这不能解决您的问题,请让我知道,我会尽力帮助您

    刚刚注意到有人已经问了完全相同的问题:

    这就像是一个家庭作业。。我猜到了吗?嘿,同学们!请尝试一下,当你到达一个点,你是卡住了,我们可以推你一点。我会看第一张讲稿幻灯片和你实验室实习的第一个练习。如果你向他们展示你迄今为止所做的尝试,他们会愿意提供帮助。重新标记作业并修复该列表(这显然表明这是作业)这就像作业一样。。我猜到了吗?嘿,同学们!请尝试一下,当你到达一个点,你是卡住了,我们可以推你一点。我看第一张讲稿幻灯片和你实验室实习的第一个练习。如果你向他们展示你迄今为止所做的尝试,他们会愿意提供帮助。重新标记作业并修复该列表(显然这是作业)。嗨,我添加了我提出的计划,需要额外的帮助。谢谢你能帮我看一下吗?嗨,我添加了我想出的程序,需要额外的帮助。谢谢你能帮我看一下吗?嗨,我添加了我想出的程序,需要额外的帮助。首先,我相信您在removeLast()中有一个错误:在while循环中执行current.setNextNode(..)会使每个节点指向第一个节点。您希望将其置于while之外,以便只更改最后一个节点的指针。对于这个问题,您只需调用removeByPosition(),并将p作为参数。将此函数更改为在末尾设置tail=current.getNextNode()。然后继续用p作为参数调用它,直到只剩下1个节点。你能帮我检查一下吗?嗨,我添加了我想出的程序,需要额外的帮助。谢谢首先我相信你在removeLast()中有一个错误:在