Thầy em có cho em làm bài về sắp xếp như thế này. Em thấy khó quá. Mong mọi người giải giúp em với. Thanks mọi người

Người ta muốn thực hiện sắp xếp Topo một tập các đối tượng mà giữa chúng có thứ tự bộ phận. Thứ tự giữa 2 đối tượng được thể hiện dưới dạng một cặp số (a,b) với ý nghĩa a < b ( < biểu diễn một thứ tự “Trước”). Các đối tượng ở đây được biểu thị bởi một thứ tự.
Có n đối tượng được đánh số từ 1 đến n, có m cặp đối tượng thể hiện thứ tự bộ phận <. Các đối tượng được coi như mỗi đỉnh của 1 đồ thị định hướng có n đỉnh, a<b được thể hiện bởi một cung đi từ a đến b. Đồ thị này được biểu diễn dưới 1 danh sách lân cận. Các nút đầu chứa con trỏ trỏ tới n danh sách lân cận. Quy cách của các nút như sau”
COUNT | TOP
COUNT: Chứa số đếm, chỉ số lượng các nút đi đến nó
TOP: Chứa con trỏ, trỏ tới nút đầu tiên của danh sách bao gồm các nút sau nút đó
Mỗi nút thuộc danh sách lân cận lại có quy cách:
VERTEX | LINK
VERTEX: Chứa số thứ tự của cá nút
LINK: Chứa con trỏ, trỏ tới nút kế tiếp trong danh sách.
Tại đây: Input là n, m và cặp tương ứng với thứ tự bộ phận
Output là dãy các số thứ tự đã được sắp xếp Topo
Yêu cầu:
1 Với Input nêu trên hãy tạo lập nên cấu trúc lưu trữ của dữ liệu
2 Dựa trên cấu trúc lưu trữ vừa tạo lập của dữ liệu, thực hiên sắp xếp Topo và đưa ra kết quả theo quy định của Output nêu trên. Các nút có Count=0 được tổ chức dưới dạng Stack
3 Dựa trên cấu trúc lưu trữ vừa tạo lập của dữ liệu, thực hiện sắp xếp Topo và đưa ra kết quả theo quy định của Output nêu trên. Các nút có Count=0 được tổ chức dưới dạng Queue
4 Lập 1 từ điển dưới dạng màng thể hiện sự tương ứng của thứ tự đối tượng với đối tượng đó
Input: Dãy số thứ tự các đối tượng
Output: Dãy tên đối tượng