000
08.03.2005, 18:17 Uhr
Sengi
|
Hallo zusammen, trotz Nutzung der Suche brauch ich ein bissle Hilfe
Ich habe hier einen binäre Baum und soll folgendes die durchschnittliche Anzahl von Knoten eines Pfades = mittlere Pfadlänge ausgeben.
Nur so richtig fehlt mir die Idee etc...
Bisher sieht mein Programm so aus (standart binärer Baum)
C++: |
#include <iostream> using namespace std;
struct Node { int data; Node* left; Node* right; }
Node* newLeafNode ( int data ) { Node* new_node = new Node; new_node ->data = data; new_node->left = NULL; new_node->right = NULL;
return new_node; }
Node* insertLeafNode ( Node* treeRoot, int data ) { if (treeRoot == NULL) return newLeadNode(data);
if ( data <= treeRoot->data ) treeRoot->left = insertLeafNode(treeRoot->left, data); else treeRoot->right = insertLeafNode(treeRoot->right, data); }
/** Iterative Implementation Node* insertLeafNode( Node* treeRoot, int data ) { Node** nPtr = &treeRoot; while ( *nPtr != NULL ) { Node* n = *nPtr; if ( data <= n->data ) nPtr = &n->left; else nPtr = &n->right; } *nPtr = newLeafNode(data); return treeRoot; } **/
void printTree( Node* treeRoot ) { if ( treeRoot != NULL ) { printTree(treeNode->left); cout << treeRoot->data << endl; printTree(treeNode->right); } }
int main() { Node* treeRoot = NULL; int data; cin >> data;
while ( data >= 0 ) { treeRoot = insertLeafNode(treeRoot,data); cin >> data; }
cout << "Binärer Baum: " << endl << printTree(treeRoot) << endl;
return 0;
}
|
Hat da vielleicht jemand eine Idee? ach ja das Programm ist erst ein Rohkonzept ( noch nicht kompiliert etc...., sondern einfach mal runtergeschrieben, müsste aber so hinkommen). Wäre dankbar für jede Hilfe.
Gruss Sengi |