如何从C函数返回树遍历作为数组

时间:2017-02-07 16:21:50

标签: c data-structures tree-traversal

我可以使用以下代码按顺序遍历树。但是如果想要从这个函数返回有序遍历,我该怎么办呢?

void inorder(Node* root){
    if(root==NULL){
        return;
    }
    inorder(root->left);
    printf("%d\n",root->data);
    inorder(root->right);
}

1 个答案:

答案 0 :(得分:-1)

void inorder(Node* root,int str[])
{
     static int i=0;
     if(root==Null){
         return;
     }
    inorder(root->left,str);
    str[i++] = root->data;
    inorder(root->right,str);
    str[i] = SOME_SENTINEL_VALUE 
}
int * inorder_temp(Node *root)
{
    int *str=(int*)malloc(MAX_SIZE_OF_TREE*sizeof(int));
    inorder(root,str);
    return str;
}

我希望这就是你所要求的。呼叫inorder_temp()代替inorder() 编辑:抱歉没有正确缩进。这是我在stackoverflow的第一个答案