将指针传递给指向函数的指针时获取分段错误

时间:2015-07-05 05:51:39

标签: c++ segmentation-fault function-pointers

将“指针指针”传递给函数获取分段错误时.Code通过插入函数生成二叉搜索树。 插入函数正在获取指向根节点的指针以及它在正确位置插入的键值

#include<iostream>
#include<stdlib.h>
strong text
using namespace std;

struct node
{
    int data;
    struct node* left;
    struct node* right;

};

void insert(struct node** node,int data)    
{
    if( *node == 0 )
    {
        (*node) = (struct node* ) malloc(sizeof(struct node));
        (*node)->data = data;
        (*node)->left = 0;
        (*node)->right = 0; 
    }
    else if(data < ((*node) -> data)){      
        insert((&((*node) -> left)),data);
    }
    else if(data > ((*node)->data)){
        insert((&((*node)->right)),data);
    }
}

void inordertreversal(struct node* node)
{
    inordertreversal(node->left);
    cout << node->data;
    inordertreversal(node->right);
}

int main()
{
    struct node *root = 0;
    insert(&root,10);
    insert(&root,6);
    inordertreversal(root);

    return 0;
}

非常感谢

1 个答案:

答案 0 :(得分:1)

每次检查下一个节点:

void inordertreversal(struct node* node)
{
    if (node->left)
        inordertreversal(node->left);

    cout << node->data;

    if (node->right)
        inordertreversal(node->right);  
}

之后:

$ g++ example.c -o example && ./example
6
10