在BST找到一对给定金额

时间:2016-07-12 13:29:05

标签: c data-structures tree binary-search-tree

struct node
{
    int val;
    struct node *left, *right;
};

// Stack type 

struct Stack
{
    int size;
    int top;
    struct node* *array;
};

struct Stack* createStack(int size)
{
    struct Stack* stack =
        (struct Stack*) malloc(sizeof(struct Stack));
    stack->size = size;
    stack->top = -1;
    stack->array =
        (struct node**) malloc(stack->size * sizeof(struct node*));
    return stack;
}

这句话的作用是什么?

stack->array =
    (struct node**) malloc(stack->size * sizeof(struct node*));

它的记忆表示是什么?

2 个答案:

答案 0 :(得分:0)

stack->array =
 (struct node**) malloc(stack->size * sizeof(struct node*));

struct node **返回指向指针(指向堆栈)的指针

stack-> size是堆栈的项目数量 sizeof(struct node *)是指向节点的指针的大小。

因此它创建了一个指针数组,其中每个指针指向堆栈中的一个元素。

答案 1 :(得分:0)

上述语句为struct node *数组分配空间,即指向struct node的指针。

然后,此数组中的每个指针都可以指向struct node的实例。