Suppose we are implementing a stack using a singly linked list where the head of the list is treated as the top of the stack. Specify the correct implementation of push() method 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: "

Lời giải
void push(Object x) {
  Node p = new Node(x);
  p.next = head;
  head=p;
}

". Với danh sách liên kết đơn mà nút đầu là đỉnh ngăn xếp, phép đẩy phải làm đúng hai việc theo đúng thứ tự: cho nút mới trỏ sang đỉnh cũ bằng p.next = head, rồi dời chính đỉnh về nút mới bằng head = p; nhờ vậy toàn bộ phần dưới của ngăn xếp vẫn liền mạch. Bản "

Lời giải
void push(Object x) {
  Node p = new Node(x);
  p.next = head;
}

" thiếu lệnh dời đỉnh, nên head vẫn chỉ vào nút cũ và nút vừa tạo không ai trỏ tới, ngăn xếp coi như không thay đổi. Bản "

Lời giải
void push(Object x) {
  Node p = new Node(x);
  p.next = null;
  head=p;
}

" cắt liên kết tới phần cũ: head chỉ vào nút mới nhưng nút mới trỏ vào null, nên mọi phần tử đã đẩy trước đó mất hết. Bản "

Lời giải
void push(Object x) {
  Node p = new Node(x);
  p.next = head;
  head=p.next;
}

" gán head bằng p.next, mà p.next vừa được đặt bằng head, nên head giữ nguyên giá trị cũ và nút mới bị bỏ rơi.

Cùng phần 2

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