二叉树
1.节点定义
struct TreeNode{
ElementType data; //数据
TreeNode *leftChild; //左子树
TreeNode *rightChild; //右子树
}
2.前序遍历
void PreOrder(TreeNode *root){
if (root == NULL){
return;
}
visit(root->data);
PreOrder(root->leftChild);
PreOrder(root->rightChild);
return;
}
3.中序遍历
void PreOrder(TreeNode *root){
if (root == NULL){
return;
}
PreOrder(root->leftChild);
visit(root->data);
PreOrder(root->rightChild);
return;
}
4.后序遍历
void PreOrder(TreeNode *root){
if (root == NULL){
return;
}
PreOrder(root->leftChild);
PreOrder(root->rightChild);
visit(root->data);
return;
}
5.层次遍历
void LevelOrder(TreeNode *root){
queue<TreeNode*> myQueue;
if (root != NULL){
myQueue.push(root);
}
while (!myQueue.empty()){
TreeNode *current = myQueue.front();
Queue.pop();
visit(current->data);
if (current -> leftChild != NULL) {
myQueue.push(current->leftChild);
}
if (current -> rightChild != NULL) {
myQueue.push(current->rightChild);
}
}
return;
}
本文深入探讨了二叉树的四种主要遍历方法:前序遍历、中序遍历、后序遍历和层次遍历。通过具体的C++代码实现,详细解释了每种遍历方式的算法流程,为读者提供了全面理解二叉树遍历的基础。
5万+

被折叠的 条评论
为什么被折叠?



