由於在Java中沒有自我闖民宅指針的概念...我如何着手解決這個問題...如何訪問鏈接列表的元素?
我不能使用內置類鏈接列表中的Java ...
但是「應該像C中一樣遵循創建鏈接列表的相同方法。」什麼可能是Java中最好的替代節點 - >下一個,node-> prev ...
由於在Java中沒有自我闖民宅指針的概念...我如何着手解決這個問題...如何訪問鏈接列表的元素?
我不能使用內置類鏈接列表中的Java ...
但是「應該像C中一樣遵循創建鏈接列表的相同方法。」什麼可能是Java中最好的替代節點 - >下一個,node-> prev ...
而不是一個指向下一個節點和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()
}
謝謝..對於快速回復... – 2011-03-05 11:59:15
「this」關鍵字是指向自我的指針。 重新提出您的問題的其餘部分 - 請澄清。
你能更具體地回答你的問題嗎? – 2011-03-05 11:49:32
Java中默認存在LinkedList。 ArrayList對於大多數列表需求已足夠 – 2011-03-05 11:50:54
我不允許在Java中使用鏈接列表類中的內置...但是「應該遵循與C中一樣創建鏈接列表的方法」。什麼可能是最好的替代品node-> next,node-> prev in Java ... – 2011-03-05 11:53:29