_fux_
0
hallo community,
ich habe mal in einem anderen Post ein Binärbaum gepostet der mit templates versehen war. leider war der quellcode des baumes auch nicht gerade perfekt -> es hatte einige bugs, besonders beim löschen.
da ich nun für klausuren lerne habe ich mir noch schnell ein binärbaum geschrieben, der später erweitert werden soll.
Dieser Baum enthält KEINE optimierungen, die gefahr eines entarteten Baums ist da. (sprich: keine rotationen ect....)
Dieses Projekt soll für mich persönlich als grundlage für weitere strukturen bilden (AVL, 2-3-4 / rot-schwarz baum ect...) und ich denke es ist dafür gut geeignet.
ich hoffe das es jemanden etwas bringt.
also:
das soll ein einfaches beispiel sein, ohne viel schnick- schnack ;-)
code ist kommentiert.
achso:
es gibt natürlich (vorallemdingen beim löschen) auch andere/kürzere lösungen, aber ich habs einfach schnell mal geschrieben!
---- uhm wollte hier mal ein Update reinschieben:
vergisst nicht
zu implementieren.... und wenn ihr das habt, müsst ihr natürlich auch die methoden des baums updaten! 
ich hoffe das passt noch da rein
notfalls einfach "bintree" in das passenden ändern, habe in der zwischenzeit ein wenig nix gemacht 
ich habe mal in einem anderen Post ein Binärbaum gepostet der mit templates versehen war. leider war der quellcode des baumes auch nicht gerade perfekt -> es hatte einige bugs, besonders beim löschen.
da ich nun für klausuren lerne habe ich mir noch schnell ein binärbaum geschrieben, der später erweitert werden soll.
Dieser Baum enthält KEINE optimierungen, die gefahr eines entarteten Baums ist da. (sprich: keine rotationen ect....)
Dieses Projekt soll für mich persönlich als grundlage für weitere strukturen bilden (AVL, 2-3-4 / rot-schwarz baum ect...) und ich denke es ist dafür gut geeignet.
ich hoffe das es jemanden etwas bringt.
also:
das soll ein einfaches beispiel sein, ohne viel schnick- schnack ;-)
code ist kommentiert.
achso:
es gibt natürlich (vorallemdingen beim löschen) auch andere/kürzere lösungen, aber ich habs einfach schnell mal geschrieben!
---- uhm wollte hier mal ein Update reinschieben:
Code:
void bintree::iter_preorder(){
treenode *p = new treenode(0);
p = root;
stack<treenode*> stacknode;
stacknode.push(p);
do{
cout << p->data << " ";
if(p->right!=0) stacknode.push(p->right);
if(p->left!=0) p = p->left;
else{
p = stacknode.top();
stacknode.pop();
}
}while(!stacknode.empty());
}
vergisst nicht
Code:
#include <stack>
ich hoffe das passt noch da rein