Как получить доступ к элементам списка ссылок? - PullRequest
1 голос
/ 05 марта 2011

Поскольку в Java нет концепции самоотражающего указателя ... Как мне перейти к решению этой проблемы ...

Мне не разрешено использовать встроенный класс Link List в Java ...

Но "Должен следовать тот же метод создания списка ссылок, как в C." Что может быть лучшим Заменить узел-> следующий, узел-> предыдущий в Java ...

Ответы [ 2 ]

5 голосов
/ 05 марта 2011

Вместо объекта с указателем на следующий узел и var в связанных списках Java можно реализовать создание класса с собственной переменной-членом.

пример реализации приведен ниже:

 1    public class Node
 2  {
 3      private int myInt;
 4      private Node nextNode;
 5     
 6      public Node(int val)
 7      {
 8          myInt = val;
 9          nextNode = null;
10          return this;
11      }
12  
13      public int getMyInt()
14      {
19          return myInt;
20      }
21  
22      public Node(Node prev, int val)
23      {
24          prev.nextNode = this;
25          myInt = val;
26          nextNode = null;
27      }
28  
29      public void addNode(Node newNode)
30      {
31          nextNode = newNode;
32      }
33  
34      public void printNodes()
35      {
36          System.out.println(myInt);
37          if (nextNode != null)
38          {
39              nextNode.printNodes();
40          }
41      }
42  
43      public void printNode()
44      {
45          System.out.println(myInt);
46      }
47
48      public Node nextNode()
49      {
50          return this.nextNode;
51      }
52  }

Чтобы создать список ссылок, создайте заголовок:

Node head = new Node(1);

Этот класс узлов имеет два способа добавления узлов в список:

Node secondNode = new Node(head, 2);

или

head.addNode(new Node(2))

здесь приведен пример списка со значениями 1 - 10

Node head = new Node(1);
Node tempPtr = head;

while ( tempPtr.getMyInt() <= 10 )
{
    tempPtr.addNode(new Node(tempPtr.getMyInt()+1));
    tempPtr = tempPtr.nextNode();
}

Теперь вы можете распечатать доступ к элементам этого списка, просматривая список.

tempPtr = head;
while ( tempPtr != Null )
{
    tempPtr.printNode()
    tempPtr = tempPtr.nextNode()
}
0 голосов
/ 05 марта 2011

Ключевое слово "this" является указателем на себя.Остальная часть вопроса - уточните.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...