Các anh chị Bách Khoa ai có thể giúp em viết chương trình về đề tài sau được không ạ ?

Cấu trúc dữ liệu ngăn xếp (stack) hàng đợi (queue):
1. Tìm hiểu cấu trúc dữ liệu ngăn xếp, hàng đợi. Các kỹ thuật xử lý trên ngăn xếp, hàng đợi.
2. Vận dụng viết chương trình C giải bài toán sau:
- Hình vẽ mô tả di chuyển các toa tàu tại một ga xe lửaCác toa tàu chỉ được di chuyển theo hướng từ A->B, từ B->C,từ A->C)

- Ban đầu ở đường ray A chứa các toa tàu đánh số từ 1 tới n theo thứ tự từ trái qua phải, người ta
muốn chuyển các toa đó sang đường ray C để được một thứ tự mới là một hoán vị của (1, 2, …,
n) theo quy tắc: chỉ được đưa các toa tàu chạy theo đường ray theo hướng mũi tên, có thể dùng
đoạn đường ray B để chứa tạm các toa tàu trong quá trình di chuyển.
a) Hãy nhập vào hoán vị cần có, cho biết có phương án chuyển hay không, và nếu có hãy đưa ra
cách chuyển:
Ví dụ: n = 4; Thứ tự cần có (1, 4, 3, 2)
1)A → C; 2)A → B; 3)A → B; 4)A → C; 5)B → C; 6)B → C
b) Những hoán vị nào của thứ tự các toa là có thể tạo thành trên đoạn đường ray C với luật di
chuyển như trên.