annotate src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/headNode.cs @ 0:dec15de2c6ff

first commit
author Kazuma
date Tue, 21 Jun 2016 17:11:12 +0900
parents
children 79da77797f7e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
1 using UnityEngine;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
2 using System.Collections;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
3 using System;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
4
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
5 public class headNode<T> : Node<T>{
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
6 private Node<T> next;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
7
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
8 public headNode(){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
9 this.next = new TailNode<T> ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
10 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
11
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
12 public headNode(Node<T> next){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
13 this.next = next;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
14 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
15
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
16 public Node<T> getNext(){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
17 return next;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
18 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
19
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
20 public T getAttribute(){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
21 return default(T);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
22 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
23
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
24 public Node<T> add(int currentNum, int num, T attribute) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
25 Node<T> newNode;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
26 if (num == 0) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
27 newNode = new DefaultNode<T>(attribute, next);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
28 return new headNode<T>(newNode);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
29 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
30 newNode = next.add(currentNum + 1, num, attribute);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
31 if (newNode == null) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
32 return this;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
33 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
34 return new headNode<T>(newNode);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
35 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
36
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
37 public Node<T> addLast(T attribute) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
38 Node<T> node = next.addLast(attribute);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
39 return new headNode<T>(node);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
40 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
41
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
42 public Node<T> delete(int currentNum, int deleteNum) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
43 if (currentNum == deleteNum) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
44 return new headNode<T>(this.next.getNext());
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
45 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
46
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
47 Node<T> newNode = next.delete(currentNum + 1, deleteNum);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
48 if (newNode == null) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
49 return this;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
50 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
51 return new headNode<T>(newNode);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
52 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
53
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
54 public Node<T> replaceNode(int currentNum, int num, T attribute) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
55 Node<T> nextNode = getNext();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
56 Node<T> newNode = nextNode.replaceNode(currentNum, num, attribute);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
57 if (newNode == null)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
58 return this;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
59 return new headNode<T>(newNode);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
60 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
61
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
62 public int length() {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
63 return next.length();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
64 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
65
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
66 public T getAttribure()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
67 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
68 throw new NotImplementedException();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
69 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
70 }