Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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 链表addLast方法_Java_Linked List_Add - Fatal编程技术网

Java 链表addLast方法

Java 链表addLast方法,java,linked-list,add,Java,Linked List,Add,如何在Java中构建addLast方法?我已经知道,LinkedList有一个内置的方法可以实现这一点) 这就是我尝试过的: public void addFirst(int d1, double d2) { Link link = new Link(d1, d2); link.nextLink = first; first = link; } public void addLast(int d1 , double d2){ Link v =

如何在Java中构建
addLast
方法?我已经知道,
LinkedList
有一个内置的方法可以实现这一点)

这就是我尝试过的:

public void addFirst(int d1, double d2) { 
    Link link = new Link(d1, d2); 
    link.nextLink = first; 
    first = link;
        }
public void addLast(int d1 , double d2){
    Link v = new Link(d1, d2);
    v.nextLink = null;
    tail.nextLink = v;
   tail = v  
}

我的
addFirst
方法有效,但我不知道如何连接它们

大体上:

    LinkList list = new LinkList();  
         list.addFirst(4, 4.04); 
         list.addFirst(5, 5.05); 
         list.addlast(3,4.5);
         list.printList();

您的问题似乎在最后一行。你想要

tail = v;
不是

此外,你有

tail = link

作为addFirst方法的最后一行-不清楚为什么要这样做。您不需要在将列表添加到前面时更新列表的尾部。

您的问题似乎出现在最后一行。你想要

tail = v;
不是

此外,你有

tail = link

作为addFirst方法的最后一行-不清楚为什么要这样做。您不需要在添加到前面时更新列表的尾部。

我意识到这是一项学校作业,因此在不给出答案的情况下,以下是要遵循的步骤:

  • 检查列表是否为空
  • 若列表为空,则将head+tail设置为指向同一节点
  • 迭代所有元素
  • 将尾部更新到新节点

  • 此外,上面的addFirst方法不可能奏效,因为您一直在重置尾部的值。

    我意识到这是一项学校作业,因此在不给出答案的情况下,以下是要遵循的步骤:

    public void addLast(int d1, double d2){
    
        Node node = new Node(d1, d2);
        Node temp = first;
        while(temp.next!= null) {
            temp = temp.next;
        }
        temp.next = node;
    }
    
  • 检查列表是否为空
  • 若列表为空,则将head+tail设置为指向同一节点
  • 迭代所有元素
  • 将尾部更新到新节点

  • 此外,上面的addFirst方法无法工作,因为您一直在重置尾部的值。

    不清楚为什么会出现这种情况。也许你应该更新原来的帖子,加入你的新代码?是的,PFHayes更正应该可以。如果您的测试代码仍然返回false,那么测试代码或代码的另一部分中可能存在错误。似乎列表的尾部实际上不是列表中的条目。实际上,您现在所做的是维护两个独立的链表,一个从开头开始,另一个从结尾结束。您需要的是添加代码,当您向空列表中添加一个项目时,first和tail都将初始化为该项目。不清楚为什么会出现这种情况。也许你应该更新原来的帖子,加入你的新代码?是的,PFHayes更正应该可以。如果您的测试代码仍然返回false,那么测试代码或代码的另一部分中可能存在错误。似乎列表的尾部实际上不是列表中的条目。实际上,您现在所做的是维护两个独立的链表,一个从开头开始,另一个从结尾结束。您需要添加的代码是,当您向空列表中添加一个项目时,first和tail都将初始化为该项目。在列表末尾添加一个元素时,不需要迭代所有元素。他有尾部引用…让我重新表述一下,他没有做足够的检查来证明尾部引用曾经在他的方法中设置过。在将元素添加到列表末尾时,没有必要迭代所有元素。他有尾部引用…让我重新表述一下,他没有做足够的检查来证明尾部引用曾经在他的方法中设置过。
    public void addLast(int d1, double d2){
    
        Node node = new Node(d1, d2);
        Node temp = first;
        while(temp.next!= null) {
            temp = temp.next;
        }
        temp.next = node;
    }