Xin ý kiến về code đảo ngược danh sách liên kết

Chuyện là thầy có giao bài tập về danh sách liên kết đơn, yêu cầu nhập vào tập hợp các số nguyên, sau đó xuất ngược nó ra. em lại nghĩ như vậy thì phải thêm 1 con trỏ để trỏ đến phần tử trước nó, thế rồi hì hục code, code xong rồi em mới nhận ra, hình như mình vừa làm DSLK đôi. Tuy nhiên e chưa hiểu việc thông suốt danh sách (liên kết các phần tử với nhau)
Nên em có cmt tự lý giải như trong hình nhưng e thấy ko ổn lắm, mn có thể xem qua và nhận xét được ko ạ?
Tại vì e tự code bằng ý tưởng các node vẽ trên paint nên chưa tham khảo code trên mạng, để xem mình có hiểu ko, nên nếu e sai thì mn người chỉ e với ạ!

Bạn nhập vào 1.
Sau đó nhập vào 2.

  • Nếu cho 1 trỏ tới 2 thì khi xuất ra sẽ là 1->2
  • Còn nếu cho 2 trỏ tới 1 thì xuất ra sẽ là 2->1

Giờ nhập tiếp 3.

  • Nếu cho 2 trỏ vào 3 thì sẽ ra 1->2->3
  • Còn nếu cho 3 trỏ vào 2 thì sẽ ra 3->2->1
3 Likes

Nếu yêu cầu là DSLK đơn thì cứ làm dạng đơn bình thường. Lúc xuất thì đảo ngược thôi. Từ khóa: đệ quy.

DSLK đơn: truy xuất theo 1 hướng. Chỉ phần tử trước đến phần từ sau.
DSLK đôi: truy xuất theo 2 hướng. Phần tử trước đến phần tử sau và ngược lại.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?