Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεHaemon Scala Τροποποιήθηκε πριν 9 χρόνια
1
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) http://www.softlab.ntua.gr/~nickie/Courses/progtech/ 1Νίκος ΠαπασπύρουΠρογραμματιστικές Τεχνικές Διαφάνειες παρουσίασης #8 (α) 4 Δυαδικά δένδρα 4 Ισοζυγισμένα δυαδικά δένδρα
2
2Νίκος ΠαπασπύρουΠρογραμματιστικές Τεχνικές Δυαδικά δένδρα(i) u Binary trees u Δυο σύνδεσμοι σε κάθε κόμβο l αριστερό και δεξί παιδί u Κάθε κόμβος έχει 0, 1 ή 2 παιδιά u Ρίζα: ο αρχικός κόμβος του δένδρου u Φύλλα: κόμβοι χωρίς παιδιά u Βάθος κόμβου: αριθμός συνδέσμων από τη ρίζα
3
3Νίκος ΠαπασπύρουΠρογραμματιστικές Τεχνικές Δυαδικά δένδρα(ii) u Τύπος κόμβου TreeNode typedef struct TreeNode_tag { int data; struct TreeNode_tag * left; struct TreeNode_tag * right; } TreeNode; u Τύπος tree typedef TreeNode * tree; u Κενό δένδρο const tree treeEmpty = NULL;
4
4Νίκος ΠαπασπύρουΠρογραμματιστικές Τεχνικές Δυαδικά δένδρα(iii) u Εισαγωγή σε δένδρα l Καθοριστική απόφαση: σε ποιο σημείο του δένδρου θα εισαχθεί ο νέος κόμβος l Ισοζυγισμένα δένδρα (balanced trees): το βάθος δυο φύλλων διαφέρει το πολύ κατά 1 u Συνάρτηση μέγιστου βάθους int treeDepth (tree t) { if (t == NULL) return 0; return 1 + max(treeDepth(t->left), treeDepth(t->right)); }
5
5Νίκος ΠαπασπύρουΠρογραμματιστικές Τεχνικές Δυαδικά δένδρα(iv) u Εισαγωγή σε ισοζυγισμένα δένδρα void treeBalancedInsert (tree * t, int d) { if (*t == NULL) { *t = (TreeNode *) malloc(sizeof(TreeNode)); if (*t == NULL) { printf("Out of memory\n"); exit(1); } (*t)->data = d; (*t)->left = (*t)->right = NULL; }
6
6Νίκος ΠαπασπύρουΠρογραμματιστικές Τεχνικές Δυαδικά δένδρα(v) u Εισαγωγή σε ισοζυγισμένα δένδρα (συνέχεια) else { int d1 = treeDepth((*t)->left); int d2 = treeDepth((*t)->right); if (d1 <= d2) treeBalancedInsert( &((*t)->left), d); else treeBalancedInsert( &((*t)->right), d); } }
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.