freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Αναδρομική Συνάρτηση Εισαγωγής σε Δυαδικό Δένδρο


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
alex599


Μέλος από: 17 Δεκ 2008
Βοηθήματα: 3
Μηνύματα: 66

Περιοχή: Πάτρα
View users profile Send email to user
ΜήνυμαΣτις: 02 Απρ 2010 17:43    Θέμα: Αναδρομική Συνάρτηση Εισαγωγής σε Δυαδικό Δένδρο Απάντηση με παράθεση  Mark this post and the followings unread

Προσπαθώ να φτιάξω μια συνάρτηση εισαγωγή δεδομένων σε δυαδικό δένδρο η οποία να είναι αναδρομική (δεν είναι εργασία-απλά έτσι μου ήρθε) και έχω φτιάξει το εξής:

κώδικας:
void binary_tree::insert(int number,node *temp){
     if (temp==NULL){
        temp=new node;
        temp->data=number;
        temp->right=temp->left=NULL;               
     }
     else{
          if (number>temp->data) insert(number,temp->right);
          else insert(number,temp->left);
     }
}


Παρόλα αυτά δεν μου τρέχει. Μπορεί κάποιος να μου εξηγήσει που είναι το λάθος διότι δεν βλέπω κάποιο! Η κλήση της συνάρτησης γίνεται ως Tree.insert(κάποιος αριθμός,Tree.root);

EDIT: Άκυρο!! Υπάρχουν πολλά λάθη και δεν γίνεται νομίζω διότι αναδρομικά αλλάζουν οι δείκτες και αν ελέγχουμε αν πάμε δεξιά ή αριστερά γίνονται λάθη. Καλύτερα με while-loop.

_________________
while(!dead()) ++knowledge;
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 02 Απρ 2010 19:22    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

αυτό ψάχνεις?

κώδικας:

struct node* insert(struct node* node, int data) {
  // 1. If the tree is empty, return a new, single node
  if (node == NULL) {
    return(newNode(data));
  }
  else {
    // 2. Otherwise, recur down the tree
    if (data <= node->data) node->left = insert(node->left, data);
    else node->right = insert(node->right, data);

    return(node); // return the (unchanged) node pointer
  }
}
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 09 Δεκ 2016 05:48 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos