Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α21.7 · Συνδεδεμένες λίστες

Εργαστήριο 9, Άσκηση 3 · Δυσκολία ★★☆ · programming · Κεφάλαια: 21, 19

3.1 Κατασκευάστε το πρόγραμμα grades.c και ορίστε μία αυτοαναφορική δομή λίστας ακεραίων αριθμών.

typedef struct listnode *Listptr;

struct listnode {
    int data;
    Listptr next;
};

3.2 Κατασκευάστε τη συνάρτηση:

void insert_at_start(Listptr *ptr, int grade);

Η συνάρτηση θα προσθέτει έναν βαθμό στην αρχή της λίστας. Τροποποιήστε τη main για να διαβάζει βαθμούς από το πληκτρολόγιο και να τους προσθέτει στη λίστα.

3.3 Κατασκευάστε τη συνάρτηση:

float average(Listptr ptr);

Η συνάρτηση θα διασχίζει τα περιεχόμενα της λίστας και θα υπολογίζει τον μέσο όρο των βαθμών που είναι αποθηκευμένοι σε αυτήν.

Υπόδειξη

Η insert_at_start αλλάζει την κεφαλή της λίστας, γι’ αυτό παίρνει δείκτη στον δείκτη της κεφαλής: δεσμεύει νέο κόμβο, τον κάνει να δείχνει στην παλιά κεφαλή και μετά ενημερώνει την κεφαλή. Η average προχωρά ακολουθώντας τα next μέχρι το NULL, μετρώντας και αθροίζοντας. Σκεφτείτε τι πρέπει να επιστρέψει για κενή λίστα.

Αριθμός στον οδηγό: Α21.7 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: lab-lab09-grades · Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab09-grades.html · Markdown (GitHub)