TreeLib/src/abstractions/Node.java

47 lines
905 B
Java
Raw Normal View History

2021-05-29 20:49:47 +02:00
package abstractions;
2021-05-02 19:21:56 +02:00
2021-05-29 20:43:22 +02:00
import java.util.ArrayList;
2021-05-02 19:50:28 +02:00
import java.util.List;
2021-05-29 20:43:22 +02:00
public abstract class Node<T extends Comparable<T>> {
2021-05-29 20:49:47 +02:00
protected final List<Node<T>> children;
2021-05-29 20:43:22 +02:00
protected T value;
protected Node<T> parent;
2021-05-02 19:50:28 +02:00
2021-05-29 20:43:22 +02:00
public Node(Node<T> parent, T value) {
this.value = value;
this.parent = parent;
this.children = new ArrayList<>();
2021-05-02 19:50:28 +02:00
}
2021-05-29 20:43:22 +02:00
public T getValue() {
return value;
2021-05-02 19:50:28 +02:00
}
2021-05-29 20:43:22 +02:00
public void setValue(T value) {
this.value = value;
}
public List<Node<T>> getChildren() {
2021-05-02 19:50:28 +02:00
return children;
}
2021-05-29 20:43:22 +02:00
public Node<T> getParent() {
return parent;
}
public abstract Node<T> addNode(T value);
@Override
public int hashCode() {
return value.hashCode();
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
public abstract String toString();
2021-05-02 19:21:56 +02:00
}