2014-09-28 2 views
0

제네릭 유형 이중 연결 목록을 사용하는 Java의 할당 작업을하고 있습니다. 나는 이것이 기본적인 질문이라고 확신하지만 나는 대답을 찾을 수 없어서 내가 물을 것이라고 생각했다. 본질적으로 이중 연결 목록 클래스의 구현이 제공되며 필요한 것은 노드를 만드는 것입니다. 내가 겪고있는 문제는 노드 클래스가 목록 클래스의 개인 정적 중첩 클래스이므로 어떻게 사용해야하는지 이해할 수 없다는 것입니다. 목록 클래스는 이런 일이 (여러 GET 및 설정 방법 밖으로 떠나) 보이는 : 그 LinkedList.Node 말하는 오류가이중 연결 목록 작성 노드

LinkedList <String> linkedlist = new LinkedList<String>(); 
    LinkedList.Node node = linkedlist.new Node(); 

    node n1 = new node("Amy", null, null); 

이 사용 : 내 드라이버 클래스에서

public class LinkedList<E> { 

    private static class Node<E>{ 
     private E element; 
     private Node<E> previous; 
     private Node<E> next; 

     public Node(E e, Node<E> p, Node<E> n) { 
      element = e; 
      prev = p; 
      next = n; 
     } 

    } 
} 

을 나는이 사용 기본 표시로 변경해야합니다. 어떤 도움을 주셔서 감사합니다.

+0

왜 오류 메시지에서 권장하는 것을 수행하지 않습니까? –

+0

@GeroldBroser 그것은 Assignment처럼 들리며 Node 구현이 주어진 것으로 가정하고 주어진 코드를 변경할 수 없습니다. –

+0

'LinkedList' 클래스 외부의 노드에 접근하지 마십시오. 'LinkedList' 클래스 안에 직접 관련된 모든 코드를 작성하십시오. –

답변

1

@Lonenebula에서 언급했듯이 클래스의 외부에서 Node 클래스에 액세스하고 싶지 않습니다.

LinkedList을 사용하려면 노드 자체를 만들지 말고 요소를 목록에 추가하면됩니다. LinkedList 클래스의 내부 코드는 새 노드를 만드는 방법에 대한 모든 필수 세부 정보를 포함합니다.

예를 들어 목록에 요소를 추가하려면 add(E e) 메서드가 있어야합니다. 이 메서드는 노드를 만들고 List에 추가하는 논리를 포함합니다. 귀하의 목록 클래스 내에서 당신은 이미 다음과 이전 Nodes을 가지고 있거나 첫 번째 또는 마지막 Node인지 알 수있는 논리를 가지고 있어야합니다.

클래스의 외부에서 Node 클래스에 액세스해야 할 필요는 없습니다.

+0

불행히도, 할당은 노드를 먼저 생성하고 add 메소드를 사용하지 않고 함께 연결해야한다는 점에서 특이합니다. 연결은 간단히 각 노드의 다음과 이전을 설정하도록 요구할 것입니다. 그러나 처음에는 노드를 생성하는 방법을 잘 모릅니다. (예 : 노드를 다음과 이전으로 모두 만들어야한다는 것을 알고 있습니다. 요소 "Amy"로 정의). – Learning

+0

@Learning 질문을 말하고 필요한 내용을 보여주기 위해 게시물을 업데이트 할 수 있습니까? 또한 어떤 'add'메소드에 대해서 이야기하고 있습니까? 나는 너의 포스트 안에 무엇이든을 읽지 않았다. –