//递归前序遍历
void pre_visit(TNode* root) {
if (!root)
return;
cout << root->data << ' ';
pre_visit(root->left);
pre_visit(root->right);
}
//非递归前序遍历
void pre_visit1(TNode* root) {
if (!root) {
cout << "空树" << endl;
return;
}
stack<TNode*> stk;
while (root || !stk.empty()) {
while (root) {
cout << root->data << ' ';
stk.push(root);
root = root->left;
}
root = stk.top();
stk.pop();
root = root->right;
}
}
请用递归和非递归俩种方法实现二叉树的前序遍历。
最新推荐文章于 2021-12-09 15:08:47 发布