简体   繁体   English

将中序代码转换为前序和后序

[英]Converting a inorder code into a preorder and postorder

How do I turn this into a preorder and a postorder traversal?如何将其转换为前序和后序遍历? This code only traverses a tree in an inorder style.此代码仅以有序方式遍历树。

void inorder() {
    inorderRec(root);
}

// Inorder Traversal
void inorderRec(Node root) {
    if (root != null) {
        inorderRec(root.left);
        System.out.print(root.key + " -> ");
        inorderRec(root.right);
    }
}

You can just change the order of statements:您可以只更改语句的顺序:

void preOrderRec(Node root) {
    if (root != null) {
        System.out.print(root.key + " -> ");
        inorderRec(root.left);
        inorderRec(root.right);
     }

void postOrderRec(Node root) {
    if (root != null) {
        inorderRec(root.left);
        inorderRec(root.right);
        System.out.print(root.key + " -> ");
     }
void preOrder(Node root)
{
if (root) {
System.out.print(root.key + " -> ");
preOrder(root.left);
preOrder(root.right);
}
}

void postOrder(Node root)
{
if (root) 
{
postOrder(root.left);
postOrder(root.right);
System.out.print(root.key + " -> ");
}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM