Cấu trúc dữ liệu

tại sao dstt chạy từ plist.n-1 về vậy mọi người .
cụ thể :sleepy:

insert(struct list&plist; int i; int j)
for(j=plist.n-1; j>=i; j--)
{plist.node[j+1]=plist.nodes[j]
.............

Hàm này để chèn một phần tử vào vị trí nào đó trong danh sách tuyến tính. Trả lời câu hỏi của bạn rằng nó duyệt ngược như thế là để duyệt từ phần tử cuối cùng lên nhằm mục đích sắp xếp lại danh sách. Đơn giản như việc bạn có một hàng người đứng đợi, có một người chen vào vị trí giữa hàng thì mỗi người sau người đó sẽ phải lùi lại. Vậy lùi bằng cách nào để không lộn xộn? Người cuối cùng sẽ lùi lại 1 bước, tiếp theo đó người kế cuối sẽ lùi lại 1bước, ngay vị trí cuối cùng trước đó. Cứ tiếp tục như thế cho đến giữa hàng sẽ lòi ra 1 chỗ trống để người kia chen vào.

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