antemar Δημοσ. 17 Ιανουαρίου 2008 Δημοσ. 17 Ιανουαρίου 2008 Eάν έχω αυτή τη δομή ΔΔΑ: typedef struct BSTnode *node; struct BSTnode { int key; node left; node right; }; πως μπορώ να έχω μια συναρτηση που θα τυπώνει τις τιμές ανά γραμμή σε post order διαπέραση;
eirinikp Δημοσ. 18 Ιανουαρίου 2008 Δημοσ. 18 Ιανουαρίου 2008 Ena sxolio: ta left kai right prepei na ta dilwseis "struct BSTnode *node" Twra auto pou rwtas einai profanes. 3ekinas apo to telos tupwneis kai proxwras aristera. Pou problimatizesai??
bilco Δημοσ. 18 Ιανουαρίου 2008 Δημοσ. 18 Ιανουαρίου 2008 Γίνε λίγο πιο ξεκάθαρος. Ποιά διάσχιση ακριβώς εννοείς; Εγώ τουλάχιστον μόνο 4 ξέρω pre-order, in-order, post-order και level traverse. Το 'τιμές ανά γραμμή' περιγράφει περισσότερο τη διάσχιση επιπέδου, αλλά μετά μιλάς για μεταδιατεταγμένη διάσχιση.
antemar Δημοσ. 18 Ιανουαρίου 2008 Μέλος Δημοσ. 18 Ιανουαρίου 2008 Το βασικό μου πρόβλημα είναι να γράψω μια αναδρομική συνάρτηση με πρότυπο void printKeys_postorder(node current) που θα τυπώνει τις τιμές των κόμβων ενός ΔΔΑ, μια ανά γραμμή, σε post order διαπέραση
bilco Δημοσ. 19 Ιανουαρίου 2008 Δημοσ. 19 Ιανουαρίου 2008 > void printKeys_postorder(node current) { if (!current) return; printKeys_postorder(current->left); printKeys_postorder(current->right); printf("%d\n", current->key); }
antemar Δημοσ. 19 Ιανουαρίου 2008 Μέλος Δημοσ. 19 Ιανουαρίου 2008 Σε ευχαριστώ για την απάντηση αν και τα είχα καταφέρει και μόνος μου. Δεν ήμουν βέβαιος όμως, αλλά τώρα εξαιτίας σου σιγουρεύτηκα. Αυτή τη στιγμή έχω κολλήσει στο εξής: θέλω μια αναδρομική συνάρτηση που θα τυπώνει όλες τις τιμές των κόμβων ενός ΔΔΑ που είναι μεγαλύτερες από τη μεταβλητή value. Το πρότυπο συνάρτησης είναι: void greater_keys(node current, int value)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.