Danh sách liên kết điểm thi sinh viên

View as PDF

Time limit: 2.0s , Memory limit: 256M , Points: 1 (partial)

Cho cấu trúc dữ liệu định nghĩa như sau:

typedef struct Node{
    int id;         //mã số là khóa đảm bảo danh sách không trùng id.
    string name;    //tên 
    double mark;    //điểm số
    Node *next;
} Students;
  • Viết hàm chèn dữ liệu vào cuối danh sách quản lý bởi con trỏ F.
    void insertLast(int vid, string vname, double vmark, Students *&F);
  • Viết hàm tìm kiếm một sinh viên trong danh sách quản lý bởi con trỏ F dựa vào id cho trước.
    Students findStudent(int vid, Students *F);
  • Viết hàm liệt kê các sinh viên có điểm thi (mark) lớn hơn hoặc bằng x cho trước trong danh sách quản lý bởi con trỏ F.
    void listStudents(doube x, Students *F);

Áp dụng các hàm trên thực hiện các yêu cầu sau được mô tả trong phần input/output.

Input

Dữ liệu gồm nhiều dòng, có các dạng sau:

  • insert vid, vname, vmark: Gọi hàm chèn cuối danh sách trên và chỉ thực hiện khi không trùng khóa.

  • find vid: Tìm kiếm và hiển thị thông tin sinh viên tìm thấy, nếu không có in -1.

  • list x: Liệt kê các sinh viên có điểm thi (mark) lớn hơn hoặc bằng x cho trước.

  • finish: Kết thúc đọc dữ liệu

Output

In dữ liệu ứng với thao tác find, list. Cụ thể xem ở ví dụ mẫu (ĐIỂM SỐ IN HAI CHỮ SỐ SAU DẤU CHẤM THẬP PHÂN)

Samples

Sample Input 1
insert 1 Nam 7
insert 2 Dung 8
insert 3 Tuan 5
insert 4 Vi 8
find 3
insert 5 Mai 8
insert 6 Long 7
insert 7 Quan 5
list 6
find 7
finish
Sample Output 1
Tuan 5.00
*****
Nam 7.00
Dung 8.00
Vi 8.00
Mai 8.00
Long 7.00
*****
Quan 5.00

Comments