File tree Expand file tree Collapse file tree 6 files changed +20
-16
lines changed
src/jokrey/utilities/simple/data_structure/stack Expand file tree Collapse file tree 6 files changed +20
-16
lines changed Original file line number Diff line number Diff line change @@ -4,5 +4,6 @@ public interface EvaluableStack<E> extends Stack<E> {
4
4
void println ();
5
5
void push (E e , long sleep_at_some_point );
6
6
E pop (long sleep_at_some_point );
7
- E peek (long sleep_at_some_point );
7
+ E top (long sleep_at_some_point );
8
+ default E head (long sleep_at_some_point ) {return top (sleep_at_some_point );}
8
9
}
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ public class LFStack<E> implements EvaluableStack<E> {
35
35
return oldHead .val ;
36
36
}
37
37
38
- @ Override public E peek () {
38
+ @ Override public E top () {
39
39
Node <E > headNode = head .get ();
40
40
return headNode ==null ? null : headNode .val ;
41
41
}
@@ -87,7 +87,7 @@ public class LFStack<E> implements EvaluableStack<E> {
87
87
return oldHead .val ;
88
88
}
89
89
90
- @ Override public E peek (long sleep_at_some_point ) {
90
+ @ Override public E top (long sleep_at_some_point ) {
91
91
sleep (sleep_at_some_point /2 );
92
92
Node <E > headNode = head .get ();
93
93
sleep (sleep_at_some_point /2 );
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ public class LinkedStack<E> implements EvaluableStack<E> {
24
24
}
25
25
}
26
26
27
- @ Override public E peek () {
27
+ @ Override public E top () {
28
28
return head ==null ? null : head .val ;
29
29
}
30
30
@@ -65,9 +65,11 @@ public class LinkedStack<E> implements EvaluableStack<E> {
65
65
}
66
66
}
67
67
68
- @ Override public E peek (long sleep_at_some_point ) {
69
- sleep (sleep_at_some_point );
70
- return head ==null ? null : head .val ;
68
+ @ Override public E top (long sleep_at_some_point ) {
69
+ sleep (sleep_at_some_point /2 );
70
+ boolean headNull = head == null ;
71
+ sleep (sleep_at_some_point /2 );
72
+ return headNull ? null : head .val ;
71
73
}
72
74
73
75
@ Override public String toString () {
Original file line number Diff line number Diff line change @@ -31,10 +31,10 @@ public class LockedStack<E> extends LinkedStack<E> {
31
31
} finally {lock .unlock ();}
32
32
}
33
33
34
- @ Override public E peek () {
34
+ @ Override public E top () {
35
35
lock .lock ();
36
36
try {
37
- return super .peek ();
37
+ return super .top ();
38
38
} finally {lock .unlock ();}
39
39
}
40
40
@@ -54,10 +54,10 @@ public class LockedStack<E> extends LinkedStack<E> {
54
54
} finally {lock .unlock ();}
55
55
}
56
56
57
- @ Override public E peek (long sleep_at_some_point ) {
57
+ @ Override public E top (long sleep_at_some_point ) {
58
58
lock .lock ();
59
59
try {
60
- return super .peek (sleep_at_some_point );
60
+ return super .top (sleep_at_some_point );
61
61
} finally {lock .unlock ();}
62
62
}
63
63
}
Original file line number Diff line number Diff line change 6
6
public interface Stack <E > {
7
7
void push (E e );
8
8
E pop ();
9
- E peek ();
9
+ E top ();
10
10
int size ();
11
11
default boolean isEmpty () {return size ()==0 ;}
12
+ default E head () {return top ();}
12
13
13
14
void clear ();
14
15
}
Original file line number Diff line number Diff line change @@ -12,8 +12,8 @@ public class SynchronizedStack<E> extends LinkedStack<E> {
12
12
return super .pop ();
13
13
}
14
14
15
- @ Override public synchronized E peek () {
16
- return super .peek ();
15
+ @ Override public synchronized E top () {
16
+ return super .top ();
17
17
}
18
18
19
19
@ Override public synchronized int size () {
@@ -29,7 +29,7 @@ public class SynchronizedStack<E> extends LinkedStack<E> {
29
29
return super .pop (sleep_at_some_point );
30
30
}
31
31
32
- @ Override public synchronized E peek (long sleep_at_some_point ) {
33
- return super .peek (sleep_at_some_point );
32
+ @ Override public synchronized E top (long sleep_at_some_point ) {
33
+ return super .top (sleep_at_some_point );
34
34
}
35
35
}
You can’t perform that action at this time.
0 commit comments