void preorder(Tree *tree){
if(t==NULL){
return;
}
cout<<tree->val<<endl;
preorder(tree->left);
preorder(tree->right);
}
void inorder(Tree *tree){
if(tree==NULL){
return;
}
inorder(tree->left);
cout<<tree->val;
inorder(tree->right);
}
void lastorder (Tree *tree){
if (tree== NULL){
return;
}
lastorder(tree->left);
lastorder(tree->right);
cout<<tree->val;
}
void preorder( Tree *tree){
stack<Tree *> s;
while(tree != NULL || (!s.empty())){
if(tree!=NULL){
cout<<tree->val<<endl;
s.push(tree);
tree = tree->left;
}else{
tree = s.top();
s.pop();
tree = tree->right;
}
}
}
void inorder(Tree* tree){
stack<Tree*>s;
while(tree!=NULL || !s.empty()){
if (tree!=NULL){
s.push(tree);
tree = tree->left();
} else{
tree =s.top();
s.pop();
cout<<tree->val;
tree = tree->right;
}
}
}
void lastvisit(Tree *tree){
stack<int> s;
Tree * last = root;
while (tree!=NULL || !s.empty()){
if(tree!=NULL){
s.push(tree);
tree = tree->left;
} else if( tree->right ==NULL || last == tree->right){
tree = s.top();
cout<<tree->val<<endl;
last = tree;
tree =NULL;
} else{
tree = tree->right;
}
}
}
树的遍历 递归与非递归实现
猜你喜欢
转载自blog.csdn.net/ttomchy/article/details/104796544
今日推荐
周排行