【发布时间】:2015-04-09 09:10:57
【问题描述】:
我正在编写一个递归函数,它将通过递归迭代到索引然后添加项目来将项目添加到给定索引的列表中。该函数应接受 2 个参数(字符串值和整数索引)并检查索引是否有效。这是我目前所拥有的,它不检查有效性,只在传入一个字符串值时才有效。
测试台(主)
public class TestBench {
public static void main(String[] args) {
RecLinkedList list = new RecLinkedList();
list.add("A");
list.add("B");
list.add("D");
list.add("C", 2);
list.add("E", 4);
list.add("G", 6); //this should be invalid
System.out.println( list );
System.out.println( list.remove( 1 ).getValue() );
System.out.println( list.remove("D").getValue() );
System.out.println( list.remove("G").getValue() );
System.out.println( list.size() );
System.out.println( list );
}
链表类
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();
}
}
我需要帮助的是我是否需要创建另一个同时接受参数(字符串和 int 值)的 add 函数,或者我是否可以修改我所拥有的?另外,至于检查索引是否有效,我不确定如何检查。
【问题讨论】:
标签: java recursion linked-list nodes