Bài tập danh sách liên kết đơn

Chả là mình sắp thi học phần cấu trức dữ liệu và có 1 vài đề năm trước nhưng khi xem lại không có phần này trong tài liệu mà mình cũng code thử vài lần cũng không được nên muốn nhờ mọi người xem giúp bài 1 với ạ. Kiểu này của danh sách đặc thì mình làm được nhưng liên kết đơn thì câu a, b thì lại chịu :(((

Bạn học BKĐN phải không, bữa mình vừa mới thi đề tương tự như thế này xong
đối với danh sách liên kết đơn như bài 1 thì đối với mỗi Node bạn tạo cho nó nhiều thuộc tính(trường) như trong đề thay thế cho cái int data mà mấy trang dạy lập trình hay dạy
Đến câu b thì lại hãy xem thuộc tính SoSinhVien chính là data để so sánh các Node và tìm ra Node có data lớn nhất
P.s: Câu c mình cũng không rõ lắm , vì rõ ràng hàm đó dùng cho câu a luôn rồi mà =))

1 Like

Ý là phải viết riêng ra đấy :smiley:

4 Likes

Em có thi đề tương tự rồi bác ạ , và câu c đúng là viết riêng ra luôn, dù ý tưởng trùng ở câu a.
Cơ mà ở ĐH chấm bài không theo brem mà theo mức độ hiểu bài với độ chính xác nên là vô tư ạ haha

Mình có chỗ ko hiểu là đề bảo viết ct nên đến đoạn tạo node rồi ghép vào thì đc nhưng ko biết viết sao để dừng thêm vào

Mình định viết câu 1 là thêm đuôi để câu c thêm đầu cho khỏi trùng :v

Vậy cũng được á , mình bữa cũng tính làm như vậy cơ mà nghĩ lại là thôi kệ nó , miễn chương trình chạy đúng là được :v

Mỗi lần thêm vào là bạn dùng hàm AddHead hoặc AddTail để thêm , vì vậy có 2 cách để nhập
C1 : quy định số trường cần nhập ( scanf -> n) rồi dùng for(1 đến n) hàm Add để thêm vào List

for ( int i=1; i<=n ; i++ ){
        .........
        AddHead
}

C2 : while hoặc do while hàm Add đến khi nhập vào 1 char nào đó quy định trước để break vòng lặp, cách này muốn thêm bao nhiêu Node tuỳ ý cho đến khi mình muốn dừng ( hoặc hết bộ nhớ)

  while(1){
   ...............
   AddHead
   if(....) break;
   }
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?