Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

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

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
alex599
Δημοσιεύσεις: 66
Εγγραφή: 17 Δεκ 2008 01:11
Τοποθεσία: Πάτρα

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

Δημοσίευση από alex599 » 02 Απρ 2010 18:43

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

Κώδικας: Επιλογή όλων

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
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

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

Δημοσίευση από virxen75 » 02 Απρ 2010 20:22

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

Κώδικας: Επιλογή όλων

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 &#40;data <= node->data&#41; node->left = insert&#40;node->left, data&#41;;
    else node->right = insert&#40;node->right, data&#41;;

    return&#40;node&#41;; // return the &#40;unchanged&#41; node pointer
  &#125;
&#125; 

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες