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

Α22.12 · Προσθήκη στοιχείου σε δυαδικό δέντρο

Διαλέξεις 21–22: Δέντρα, διαφάνεια 16 (διάλεξη 21: διαφάνεια 38) · Δυσκολία ★★☆ · programming · Κεφάλαια: 22, 21

Στις βασικές λειτουργίες με δυαδικά δέντρα, η διάλεξη αφήνει ως άσκηση:

Υλοποιήστε την προσθήκη ενός ακεραίου σε δυαδικό δέντρο αναζήτησης (BST) με κόμβους

typedef struct treenode {
  int value;
  struct treenode *left;
  struct treenode *right;
} *Tree;

ώστε το δέντρο να παραμένει ταξινομημένο. Ελέγξτε το αποτέλεσμα τυπώνοντας το δέντρο με in-order διάσχιση.

Υπόδειξη

Ακολουθήστε την ίδια διαδρομή με την αναζήτηση στο BST· όταν φτάσετε σε NULL, εκεί ανήκει ο νέος κόμβος, που δεσμεύεται με malloc. Για να αλλάξει ο δείκτης του γονιού (ή η ρίζα, αν το δέντρο είναι άδειο), είτε επιστρέψτε το νέο δέντρο είτε περάστε δείκτη σε Tree, όπως στην insert των λιστών.

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