1 import java.util.Collection;
2
3 public interface Tree<E> extends Collection<E> {
4
5 public boolean search(E e);
6
7
9 public boolean insert(E e);
10
11
13 public boolean delete(E e);
14
15
16 public int getSize();
17
18
19 public default void inorder() {
20 }
21
22
23 public default void postorder() {
24 }
25
26
27 public default void preorder() {
28 }
29
30 @Override
31 public default boolean isEmpty() {
32 return this.size() == 0;
33 }
34
35 @Override
36 public default boolean contains(Object e) {
37 return search((E)e);
38 }
39
40 @Override
41 public default boolean add(E e) {
42 return insert(e);
43 }
44
45 @Override
46 public default boolean remove(Object e) {
47 return delete((E)e);
48 }
49
50 @Override
51 public default int size() {
52 return getSize();
53 }
54
55 @Override
56 public default boolean containsAll(Collection<?> c) {
57
58 return false;
59 }
60
61 @Override
62 public default boolean addAll(Collection<? extends E> c) {
63
64 return false;
65 }
66
67 @Override
68 public default boolean removeAll(Collection<?> c) {
69
70 return false;
71 }
72
73 @Override
74 public default boolean retainAll(Collection<?> c) {
75
76 return false;
77 }
78
79 @Override
80 public default Object[] toArray() {
81
82 return null;
83 }
84
85 @Override
86 public default <T> T[] toArray(T[] array) {
87
88 return null;
89 }
90 }