나는 지난 1 년간의 질문에 대한 재시도를 시도하고 있으며 아래 질문에 집착하고 있습니다. 에서 질문 1재귀를 사용하여 단일 연결 목록에 대한 역방향 메서드 인쇄
당신이 반복자에 위의 방법을 사용하여 아래의는 printBackward 방법의 디자인을 완성 다음 방법
public interface ListIterator<E>
{
E next();
boolean hasNext();
}
public class LinkedList<E>
{
public void addLast(E obj){..}
public int size(){..}
public ListIterator<E> listIterator(){...}
}
과 반복자 인터페이스와 LinkedList의 클래스의 존재를 가정 할 수 다음 인터페이스 및 LinkedList 클래스. 메소드에 새로운 변수를 추가해서는 안됩니다. 귀하의 대답에 전체 방법을 복사하지 마십시오. 초기화 1, 초기화 2, 블록 1, 블록 2, 블록 3의 내용을 작성하십시오. printBackward 메소드는 단일 목록에서 역순으로 작성해야합니다. 매개 변수 n은 목록의 크기를 지정합니다.
public class MyLinkedList<E> extends LinkedList<E>
{
public void printBackward(int n)
{
if(n > 0){
ListIterator<E> itr = /**Initialisation 1**/ list1.listIterator();
int count = /**Initialisation 2**/ 0;
E item;
while(itr.hasNext())
{
/**Block 1**/ addLast(list1); printBackward(); count --;
}
/**Block 2**/ E.next;
}else
/**Block 3**/ return;
}
}
}
나는/** .. **/옆에 내 대답을 삽입했지만 정확한지 확신 할 수 없습니다. 누군가 내 실수를 바로 잡는 데 도움이된다면 많은 도움이 될 것입니다.
을, 당신은 필요가 없습니다 연결된 목록에 아무 것도 추가 할 수 있습니다. – Makoto
그래서 printBackward 메소드를 변경할 수 없습니까? 왜 ListIterator가 itr을 다시 초기화 했습니까? –
davidmontoyago
@davidmontoyago, 나는 코드를 받았고 /**...**/로 비트를 변경할 수있었습니다. 왜 다시 초기화 되었습니까? 조금 도움이 되었습니까? – coralbeans