File tree Expand file tree Collapse file tree 1 file changed +17
-2
lines changed Expand file tree Collapse file tree 1 file changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -80,6 +80,11 @@ public int dequeue() {
80
80
front .next = front .next .next ;
81
81
destroy = null ; /* clear let GC do it's work */
82
82
size --;
83
+
84
+ if (isEmpty ()) {
85
+ front = rear ;
86
+ }
87
+
83
88
return retValue ;
84
89
}
85
90
@@ -120,11 +125,16 @@ public int size() {
120
125
* Clear all nodes in queue
121
126
*/
122
127
public void clear () {
123
- //TODO
128
+ while (!isEmpty ()) {
129
+ dequeue ();
130
+ }
124
131
}
125
132
126
133
@ Override
127
134
public String toString () {
135
+ if (isEmpty ()) {
136
+ return "[]" ;
137
+ }
128
138
StringBuilder builder = new StringBuilder ();
129
139
Node cur = front .next ;
130
140
builder .append ("[" );
@@ -144,11 +154,16 @@ public static void main(String[] args) {
144
154
queue .enqueue (1 ); /* 1 */
145
155
queue .enqueue (2 ); /* 1 2 */
146
156
queue .enqueue (3 ); /* 1 2 3 */
147
- System .out .println (queue );
157
+ System .out .println (queue ); /* [1, 2, 3] */
148
158
149
159
assert queue .size () == 3 ;
150
160
assert queue .dequeue () == 1 ;
151
161
assert queue .peekFront () == 2 ;
152
162
assert queue .peekRear () == 3 ;
163
+
164
+ queue .clear ();
165
+ assert queue .isEmpty ();
166
+
167
+ System .out .println (queue ); /* [] */
153
168
}
154
169
}
You can’t perform that action at this time.
0 commit comments