Danh sách liên kết đơn bản 1

View as PDF

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

Cho một danh sách liên kết đơn và các hàm cần cài đặt được định nghĩa như sau:

typedef struct Node {
    string name;    //là xâu ký tự không có ký tự trắng tên người
    int mark;       //là điểm số có giá trị từ 0..9
    struct Node *next;
}List;
//1. Hàm chèn dữ liệu gồm (vname, vmark) tương ứng với hai trường dữ liệu vào đầu danh sách.
void InsertFirst(List *& head,string vname, int vmark);
//2. Hàm chèn dữ liệu gồm (vname, vmark) tương ứng với hai trường dữ liệu vào cuối danh sách.
void InsertLast(List *& head,string vname, int vmark); 
//3. Hàm đếm xem có bao nhiêu người có điểm (mark) lớn hơn hoặc bằng vmark
int Count(List * head, int vmark);

Hãy cài đặt các hàm và viết chương trình thể hiện quá trình sử dụng của hàm.

Input

Gồm nhiều dòng, một dòng tương ứng một câu lệnh cần thao tác trên danh sách.

  • Dòng có cấu trúc <insF vname vmark> là chèn một phần tử vào đầu danh sách.

  • Dòng có cấu trúc <insL vname vmark> là chèn một phần tử vào cuối danh sách.

  • Dòng có cấu trúc <count vmark> là đếm số phần tử có trường marks có giá trị lớn hơn hoặc bằng vmark.

  • Kết thúc là một dòng chỉ duy nhất xâu "fin".

Output

Ứng với lệnh count trong các thao tác thì in ra kết quả cần tìm. Mỗi kết quả in ra trên một dòng. Dữ liệu vào đảm bảo có kết quả, tức là có ít nhất một lệnh count.

Samples

Sample Input
insL lan 5
count 2
insL hung 5
insL dung 5
count 5
insF tuan 5
insL minh 5
count 2
count 5
count 9
fin
Sample Output
1
3
5
5
0

Comments