annotate src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/data/list/headNode.java @ 211:74648c746dd4

List fix
author tatsuki
date Tue, 04 Aug 2015 07:54:30 +0900
parents 9166735b34c9
children 7da9056e9357
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
209
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.jungle.data.list;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
2
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
3 /**
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
4 * Created by e115731 on 15/05/18.
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
5 */
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
6 public class headNode<T> implements Node<T> {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
7 private final Node next;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
8
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
9
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
10 public headNode() {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
11 this.next = new TailNode<T>();
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
12 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
13
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
14 public headNode(Node next) {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
15 this.next = next;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
16 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
17
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
18 public int getNum() {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
19 return -1;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
20 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
21
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
22 public Node getNext() {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
23 return next;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
24 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
25
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
26 public T getAttribute() {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
27 return null;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
28 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
29
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
30 public Node<T> add(int currentNum, int num, T attribute) {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
31 if (num == 0) {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
32 Node<T> newNode = new DefaultNode<>(attribute, next);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
33 return new headNode<T>(newNode);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
34 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
35 Node<T> newNode = next.add(currentNum + 1, num, attribute);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
36 if (newNode == null)
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
37 return this;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
38 return new headNode(newNode);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
39 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
40
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
41 public Node<T> addLast(T attribute) {
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
42 Node<T> node = next.addLast(attribute);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
43 return new headNode<T>(node);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
44 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
45
210
9166735b34c9 change List.delete
tatsuki
parents: 209
diff changeset
46 public Node<T> delete(int currentNum, int deleteNum) {
9166735b34c9 change List.delete
tatsuki
parents: 209
diff changeset
47 if (currentNum == deleteNum) {
209
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
48 return new headNode(this.next.getNext());
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
49 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
50
211
74648c746dd4 List fix
tatsuki
parents: 210
diff changeset
51 Node<T> newNode = next.delete(currentNum + 1, deleteNum);
209
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
52 if (newNode == null)
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
53 return this;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
54 return new headNode(newNode);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
55 }
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
56
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
57 @Override
211
74648c746dd4 List fix
tatsuki
parents: 210
diff changeset
58 public Node<T> replaceNode(int currentNum, int num, T attribute) {
209
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
59 Node<T> nextNode = getNext();
211
74648c746dd4 List fix
tatsuki
parents: 210
diff changeset
60 Node<T> newNode = nextNode.replaceNode(currentNum, num, attribute);
209
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
61 if (newNode == null)
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
62 return this;
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
63 return new headNode(newNode);
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
64 }
210
9166735b34c9 change List.delete
tatsuki
parents: 209
diff changeset
65
9166735b34c9 change List.delete
tatsuki
parents: 209
diff changeset
66 @Override
211
74648c746dd4 List fix
tatsuki
parents: 210
diff changeset
67 public int length() {
210
9166735b34c9 change List.delete
tatsuki
parents: 209
diff changeset
68 return next.length();
9166735b34c9 change List.delete
tatsuki
parents: 209
diff changeset
69 }
209
e5275a599048 reverseList → List
tatsuki
parents:
diff changeset
70 }