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

View as PDF

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

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

typedef struct Node{
    int data;
    struct Node *next;
}SList;
//Hàm chèn một phần tử x và cuối danh sách.
void InsertLast(SList *& F, int x);
//Hàm chèn một phần tử x vào vị trí trước vị trí p trong danh sách.
void InsertBeforeP(SList *& F, int x, int p);
//Hàm xóa một phần tử ở vị trí p.
void Delete(SList *&F, int p);
//Hàm tính giá trị trung bình của các phần tử trong danh sách.
float Average(SList *F);

Hãy cài đặt các hàm và thực hiện các yêu cầu mô tả trong input, output.

Input

Dòng đầu chứa số nguyên dương n là số phần tử hiện có của danh sách.

Dòng tiếp theo chứa n sô` nguyên lần lượt được chèn vào danh sách bằng phép chèn cuối.

Dòng thứ ba trở đi, mỗi dòng là một bộ có cấu trúc như sau:

  • i x p nghĩa là chèn x vào danh sách ở vị trí trước p, và p được đánh chỉ số bắt đầu từ 1.

  • d p nghĩa là xóa phần tử thứ p. Nếu p không thuộc phạm vi danh sách thì không xóa.

  • a nghĩa là in ra giá trị trung bình cộng của danh sách.

  • 0 0 dùng để kết thức dữ liệu vào.

Output

Chỉ in ra dữ liệu khi gặp lệnh có cấu trúc , mỗi kết quả in trên một dòng và lấy 4 chữ số sau dấu chấm thập phân.

Samples

Sample Input 1
6
1 1 1 1 1 1
i 4 1
a
i 6 7
i 12 1
i 1 14
a
d 1
a
0 0
Sample Output 1
1.4286
2.9000
1.8889

Comments


  • 0
    23t1020360  commented on May 8, 2024, 2:38 a.m.

    xem giúp bài mình và chỉ lỗi sai giúp mình với ạ


    • 0
      23t1020122  commented on April 27, 2024, 3:29 p.m. edited

      Cho mình hỏi, ở hàm insertBeforePos, nếu pos > n thì mình chèn cuối ạ? Nếu chèn cuối thì có ảnh hưởng đến hàm delete không?


        • 0
          Aryaa  commented on April 28, 2024, 1:52 a.m.

          có chứ do số phần tử tăng thì vị trí xóa của delete sẽ rộng hơn


        • 0
          23T1020343  commented on April 25, 2024, 2:22 p.m.

          xem dùng bài của mình, và chỉ dùm lỗi sai với ạ...


            • 0
              Aryaa  commented on April 27, 2024, 11:35 a.m.

              ông xem lại hàm tbc và đổi kiểu dữ liệu thành float và xóa cái *1.0 là oke nha với cnt có hàm size rồi thì tui nghĩ ông nên dùng lại hàm size và xóa cnt++ cho gọn code hơn :3


            • 0
              God_of_War  commented on April 22, 2024, 9:39 a.m.


              • 0
                23t1020600  commented on April 21, 2024, 11:08 a.m.

                bài này code sao ạ


                  • 0
                    Aryaa  commented on April 22, 2024, 5:17 a.m.

                    ông tạo các hàm theo yêu cầu r tạo dslk như input r dùng char để check kí tự gì r xử lý bằng các hàm là oke


                  • 0
                    23t1020026  commented on April 11, 2024, 3:34 p.m.

                    tại sao output thứ 3 lại in ra 1.8889 v ạ? không phải là 3.1111 hay sao ạ? ai giải thích giúp em với.


                      • 1
                        Aryaa  commented on April 13, 2024, 2:57 a.m.

                        delete 1 là xóa node có giá trị 12 á