Τι θα τυπώσει το πρόγραμμα;
#include <stdio.h>
#include <stdlib.h>
typedef struct listnode {int value; struct listnode * next;} * List;
void insert(List * list, int value) {
List current_head = *list;
List new_head = malloc(sizeof(struct listnode));
new_head->value = value;
new_head->next = current_head;
*list = new_head;
}
void print(List list) {
printf("list: ");
while(list) {
printf(" -> %d", list->value);
list = list->next;
}
printf(" -> NULL\n");
}
int main() {
List list = NULL;
insert(&list, 42); insert(&list, 43); insert(&list, 44);
print(list);
return 0;
}
Ζωγραφίστε τη λίστα μετά από κάθε κλήση της insert: σε ποια θέση μπαίνει κάθε νέος κόμβος; Προσέξτε και τα κενά που τυπώνουν τα δύο πρώτα printf.
Αριθμός στον οδηγό: Α21.2
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec21-insert-output ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec21-insert-output.html ·
Markdown (GitHub)