Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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_Recursion_Linked List_Nodes - Fatal编程技术网

Java 递归地将节点添加到特定索引处的链表中

Java 递归地将节点添加到特定索引处的链表中,java,recursion,linked-list,nodes,Java,Recursion,Linked List,Nodes,我正在编写一个递归函数,通过递归迭代索引,然后添加项,将项添加到给定索引的列表中。该函数应接受2个参数(字符串值和整数索引),并检查索引是否有效。这里是我到目前为止所做的,它不检查有效性,只在传入一个字符串值时起作用 试验台(主) 链表类 public class RecLinkedList { private Node first; public RecLinkedList(){ first = null; } public boolean isEmpty() { retur

我正在编写一个递归函数,通过递归迭代索引,然后添加项,将项添加到给定索引的列表中。该函数应接受2个参数(字符串值和整数索引),并检查索引是否有效。这里是我到目前为止所做的,它不检查有效性,只在传入一个字符串值时起作用

试验台(主)

链表类

public class RecLinkedList {
private Node first;

public RecLinkedList(){
    first = null;
}
public boolean isEmpty() {
    return first == null;
}
public void add( String s){
    first = add( s, first);
}
private Node add( String s, Node list){
    if( list == null ){
        return new Node(s);
    }else{
        list.setNext( add( s, list.getNext() ) );
    return list;
    }
}
public String toString() {
    return helperString(first);
}
private String helperString(Node list) {
    if (list.getNext() != null) {
        return list.getValue() + "," + helperString(list.getNext());
    }
    else {
        return (String) list.getValue();   
    }
} 

我需要的帮助是,我是否需要制作另一个add函数,该函数同时接受两个参数(字符串和int值),或者我是否可以修改现有的参数?另外,至于检查索引是否有效,我真的不确定如何检查。

最好编写另一个带有参数
String
int
的add方法,因为它的行为与其他add函数不同。如果您查看许多类的JavaAPI,就会发现方法名被重载了。所以这是一个很好的实践


要确定索引是否有效,首先需要声明一个字段,该字段保存链接列表的当前大小。每次添加或删除元素时,此计数器都会更新。调用新的add方法时,首先要检查要插入新元素的索引是否小于零或大于链表的大小。如果它低于零,则这不是有效的索引。如果它大于列表的大小,那么这是没有意义的,因此您可以拒绝它,或者更可疑地将元素添加到列表的末尾。

最好编写另一个带有参数
String
int
的add方法,因为它的行为与其他add函数不同。如果您查看许多类的JavaAPI,就会发现方法名被重载了。所以这是一个很好的实践


要确定索引是否有效,首先需要声明一个字段,该字段保存链接列表的当前大小。每次添加或删除元素时,此计数器都会更新。调用新的add方法时,首先要检查要插入新元素的索引是否小于零或大于链表的大小。如果它低于零,则这不是有效的索引。如果它大于列表的大小,那么这是没有意义的,因此您可以拒绝它,或者更可疑地将元素添加到列表的末尾。

最好编写另一个带有参数
String
int
的add方法,因为它的行为与其他add函数不同。如果您查看许多类的JavaAPI,就会发现方法名被重载了。所以这是一个很好的实践


要确定索引是否有效,首先需要声明一个字段,该字段保存链接列表的当前大小。每次添加或删除元素时,此计数器都会更新。调用新的add方法时,首先要检查要插入新元素的索引是否小于零或大于链表的大小。如果它低于零,则这不是有效的索引。如果它大于列表的大小,那么这是没有意义的,因此您可以拒绝它,或者更可疑地将元素添加到列表的末尾。

最好编写另一个带有参数
String
int
的add方法,因为它的行为与其他add函数不同。如果您查看许多类的JavaAPI,就会发现方法名被重载了。所以这是一个很好的实践


要确定索引是否有效,首先需要声明一个字段,该字段保存链接列表的当前大小。每次添加或删除元素时,此计数器都会更新。调用新的add方法时,首先要检查要插入新元素的索引是否小于零或大于链表的大小。如果它低于零,则这不是有效的索引。如果它大于列表的大小,则这没有意义,因此您可以拒绝它,或者更可疑地将元素添加到列表的末尾。

关于有效索引,您可以添加一个包含现有节点的大小字段

public class RecLinkedList {
    private int size = 0;

    //...
    private Node add( String s, Node list){
        if( list == null ){
            this.size += 1;
            return new Node(s);
        }else{
            list.setNext( add( s, list.getNext() ) );
            return list;
        }
    }
    //...
}
然后,在使用方法添加新节点时,可以检查索引是否大于当前大小或小于零


要在正确的位置添加节点,只需计算allready访问的节点数,当到达正确的位置时,添加节点。

关于有效索引,您可以添加一个大小字段来计算现有节点

public class RecLinkedList {
    private int size = 0;

    //...
    private Node add( String s, Node list){
        if( list == null ){
            this.size += 1;
            return new Node(s);
        }else{
            list.setNext( add( s, list.getNext() ) );
            return list;
        }
    }
    //...
}
然后,在使用方法添加新节点时,可以检查索引是否大于当前大小或小于零


要在正确的位置添加节点,只需计算allready访问的节点数,当到达正确的位置时,添加节点。

关于有效索引,您可以添加一个大小字段来计算现有节点

public class RecLinkedList {
    private int size = 0;

    //...
    private Node add( String s, Node list){
        if( list == null ){
            this.size += 1;
            return new Node(s);
        }else{
            list.setNext( add( s, list.getNext() ) );
            return list;
        }
    }
    //...
}
然后,在使用方法添加新节点时,可以检查索引是否大于当前大小或小于零


要在正确的位置添加节点,只需计算allready访问的节点数,当到达正确的位置时,添加节点。

关于有效索引,您可以添加一个大小字段来计算现有节点

public class RecLinkedList {
    private int size = 0;

    //...
    private Node add( String s, Node list){
        if( list == null ){
            this.size += 1;
            return new Node(s);
        }else{
            list.setNext( add( s, list.getNext() ) );
            return list;
        }
    }
    //...
}
然后,在使用方法添加新节点时,可以检查索引是否大于当前大小或小于零


要将节点添加到正确的位置,只需计算已访问的节点数,当到达正确位置时,添加节点。

Ok,我创建了新的添加方法public void add(String value,int index),并使用if