Programming Techniques

Bài tập về Double Linked List

I. Khởi tạo và thao tác cơ bản

  1. Khởi tạo danh sách liên kết đôi rỗng
  2. Thêm phần tử vào đầu danh sách
  3. Thêm phần tử vào cuối danh sách
  4. Thêm phần tử tại vị trí bất kỳ
  5. Hiển thị danh sách từ đầu đến cuối
  6. Hiển thị danh sách từ cuối đến đầu
  7. Đếm số phần tử trong danh sách
  8. Xóa phần tử ở đầu danh sách
  9. Xóa phần tử ở cuối danh sách
  10. Xóa phần tử tại vị trí bất kỳ

II. Tìm kiếm và thống kê

  1. Tìm phần tử có giá trị x
  2. Đếm số lần xuất hiện của một giá trị
  3. Tìm phần tử lớn nhất và nhỏ nhất
  4. Tính tổng các phần tử
  5. Kiểm tra danh sách có đối xứng không
  6. Đếm số phần tử chẵn/lẻ
  7. Tìm phần tử nguyên tố đầu tiên
  8. Tính trung bình cộng các phần tử
  9. Đếm số node có giá trị lớn hơn giá trị cho trước
  10. Đếm số node là số chính phương

III. Chỉnh sửa danh sách

  1. Sắp xếp danh sách tăng dần
  2. Sắp xếp danh sách giảm dần
  3. Đảo ngược danh sách
  4. Chèn phần tử sao cho danh sách luôn tăng dần
  5. Xóa tất cả các node có giá trị x
  6. Xóa các node trùng nhau
  7. Thêm phần tử sau node có giá trị x
  8. Thêm phần tử trước node có giá trị x
  9. Tách danh sách thành 2 danh sách chẵn/lẻ
  10. Gộp 2 danh sách thành 1 danh sách liên kết đôi

IV. Đệ quy và nâng cao

  1. Đếm số phần tử bằng đệ quy
  2. Tìm phần tử lớn nhất bằng đệ quy
  3. Đảo ngược danh sách bằng đệ quy
  4. So sánh hai danh sách liên kết đôi
  5. Kiểm tra danh sách có vòng lặp không
  6. Chuyển danh sách liên kết đơn sang danh sách đôi
  7. Chuyển danh sách đôi sang mảng
  8. Chuyển mảng thành danh sách đôi
  9. Đếm số phần tử là bội của k
  10. Gộp 3 danh sách liên kết đôi

V. Ứng dụng và mô phỏng

  1. Mô phỏng trình duyệt web (Back/Forward)
  2. Mô phỏng undo/redo bằng danh sách đôi
  3. Quản lý danh sách sản phẩm thêm/xóa hai đầu
  4. Quản lý playlist nhạc có thể chạy hai chiều
  5. Chuyển danh sách đôi thành stack
  6. Chuyển danh sách đôi thành queue
  7. Mô phỏng vòng quay trò chơi
  8. Mô phỏng xếp lịch học trong tuần
  9. Lưu trữ lịch sử thao tác người dùng
  10. Phân tích dữ liệu tài chính theo chiều thời gian ngược