Mercurial > hg > Members > nobuyasu > jungle-network
comparison src/jungle/test/operations/NetworkNodePath.java @ 1:8ee02d1a2b12
add jungle.test.operations
author | one |
---|---|
date | Fri, 07 Jun 2013 19:26:08 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:3991a751ed00 | 1:8ee02d1a2b12 |
---|---|
1 package jungle.test.operations; | |
2 | |
3 import java.util.Iterator; | |
4 import java.util.LinkedList; | |
5 | |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
8 | |
9 public class NetworkNodePath implements NodePath | |
10 { | |
11 LinkedList<Integer> path; | |
12 | |
13 public NetworkNodePath() { | |
14 path = new LinkedList<Integer>(); | |
15 } | |
16 | |
17 private NetworkNodePath(LinkedList<Integer> _path) { | |
18 path = _path; | |
19 } | |
20 | |
21 @Override | |
22 public Iterator<Integer> iterator() { | |
23 return path.iterator(); | |
24 } | |
25 | |
26 @Override | |
27 public NetworkNodePath add(int _pos) { | |
28 LinkedList<Integer> newPath = copyPath(); | |
29 newPath.add(_pos); | |
30 return new NetworkNodePath(newPath); | |
31 } | |
32 | |
33 @Override | |
34 public Pair<Integer, NodePath> pop() { | |
35 LinkedList<Integer> cPath = copyPath(); | |
36 int e = cPath.getFirst(); | |
37 cPath.remove(); | |
38 return new Pair<Integer, NodePath>(e, new NetworkNodePath(cPath)); | |
39 } | |
40 | |
41 @Override | |
42 public int size() { | |
43 return path.size(); | |
44 } | |
45 | |
46 private LinkedList<Integer> copyPath() { | |
47 LinkedList<Integer> newPath = new LinkedList<Integer>(); | |
48 for (Integer i : path) { | |
49 newPath.add(i); | |
50 } | |
51 return newPath; | |
52 } | |
53 | |
54 @Override | |
55 public String toString() { | |
56 return path.toString(); | |
57 } | |
58 | |
59 } |