Skip to content

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

Problem code: pb0155 Group: Nhập môn lập trình Problem type: Kiểu cài đặt cơ bản

Time limit
1.0 s
Memory limit
256 MB
Points
1partial
AC rate
24.7%
Solvers
451

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

  • 23t1020360

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

    Vote score: 2
  • 23t1020122 edit 2

    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?

    Vote score: 0
    • Aryaa Amateur

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

      Vote score: 0
  • 23T1020343 Amateur

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

    Vote score: 0
    • Aryaa Amateur edited

      ô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

      Vote score: 0
  • God_of_War Newbie

    This comment is hidden due to too much negative feedback.

    Vote score: -6
  • 23t1020600

    bài này code sao ạ

    Vote score: 0
    • Aryaa Amateur

      ô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

      Vote score: 0
  • 23t1020026

    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.

    Vote score: 0
    • Aryaa Amateur

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

      Vote score: 1
      • 23t1020360 edited

        à

        Vote score: 0