Specify the correct implementation of pop() method of a stack. This stack uses java.util.LinkedList for storing data and the end of the list is treated as the top of the stack. (Choose the most suitable one)

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Đáp án đúng: "Object pop() {

Lời giải
if (isEmpty()) return(null);
return(pool.removeLast());

}". Vì cuối danh sách được coi là đỉnh ngăn xếp và java.util.LinkedList có sẵn removeLast(), lệnh này vừa tháo nút cuối vừa trả về chính phần tử đó trong một bước, đúng ngữ nghĩa của pop là lấy ra và trả về đỉnh; kiểu trả Object cho phép trả null khi ngăn xếp rỗng. Vì vậy "

Lời giải
void pop(Object x) {
  if (isEmpty()) return(null);
  pool.remove(pool.size()-1);
}

" sai hai chỗ: hàm void không được return(null), lại nhận tham số và không trả gì nên người gọi không bao giờ nhận được phần tử ở đỉnh. "Object pop() {

Lời giải
if (isEmpty()) return;
return(pool.remove(pool.size()-1));

}" sai vì hàm khai báo trả Object mà có lệnh return trống, trình biên dịch báo thiếu giá trị trả về. "Object pop() {

Lời giải
if (isEmpty()) return(null);
return(pool.remove(pool.size()));

}" sai vì chỉ số hợp lệ chỉ từ 0 đến size()-1, nên remove(pool.size()) luôn vượt biên và ném IndexOutOfBoundsException.

Cùng phần 2

Xuất hiện trong 1 bộ đề