理解二进制搜索树

时间:2015-07-14 08:08:32

标签: c struct binary-search-tree

struct node {
    int key;
    struct node* left;
    struct node* right; 
};

struct node * newBST(int key){
    struct node* temp = (struct node*) malloc(sizeof(struct node));
    temp -> key = key; 
    temp -> left = temp -> right = NULL; 
    return key; 
}

所以我无法理解为什么我们malloc节点的大小?结构*临时? 是这样我们可以访问节点中创建的元素吗?

1 个答案:

答案 0 :(得分:4)

保留内存。在struct node {...}之后,您现在基本上已经了解了节点应该是什么样子的蓝图。然后你去 urban 记忆计划办公室,并告诉他们"我正在制作一个新节点,我能在某处预留24 square meter 字节吗? "他们告诉你"当然,这里应该是一个好地方,我们保证不会把它交给其他任何人。只要确保不要乱用24个平方米字节之外的任何东西,否则会发生不好的事情"。所以你拿走temp地址,去那里开始布局:key进入这些 8 平方米字节,然后让#39 ; s清除这些 8以及这些其他 8来自之前可能存在的所有残疾......

*)int现在通常占用8个字节的内存,每个指针也是如此。但这取决于您的计算机和编译器。