【问题标题】:finding a pair with given sum in BST在 BST 中找到给定总和的对
【发布时间】:2016-07-12 13:29:05
【问题描述】:
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*));

它的内存表示是什么?

【问题讨论】:

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


【解决方案1】:
stack->array =
 (struct node**) malloc(stack->size * sizeof(struct node*));

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

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

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

【讨论】:

  • 所以我想这会是这样的:-
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    相关资源
    最近更新 更多