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

Α21.2 · Τι τυπώνει η εισαγωγή σε λίστα;

Διάλεξη 21, διαφάνειες 13–16 · Δυσκολία ★☆☆ · trace · Κεφάλαια: 21

Τι θα τυπώσει το πρόγραμμα;

#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)