我正在实施BST并需要您的建议。代码有2个结构。我需要在项目结构中分配链接结构。我该怎么办?我是否需要同时分配item->link->left & item->link->right
?
请举例解释一下?
struct link;
struct link
{
struct link *left;
struct link *right;
};
struct item
{
struct link link;
uint8_t c;
};
在某处插入功能
item *temp = NULL;
//我将如何分配内存?
答案 0 :(得分:0)
首先,您必须为test
分配内存。
item
拥有item *temp = NULL;
temp = malloc(sizeof(item)); // alocate memory for 1 item
后,您必须为左右链接分配内存
item
请注意temp->link.left = malloc(sizeof(link));
temp->link.left = malloc(sizeof(link));
,因为.
来自link
它不是指针。
答案 1 :(得分:0)
list struct是堆栈结构中的成员。堆栈封装了列表。这是一种使用几个函数malloc并初始化场景的方法。希望它有所帮助!
typedef struct currentPos{
int x;
int y;
currentPos * next;
}currentPos;
typedef struct stack
{
currentPos * list;
}stack;
int main(){
stack * myStack;
myStack = malloc(sizeof(stack)*1); // mallocing shell
myStack = createStack(myStack);
return(0);
}
stack * createStack(stack * myStack)
{
myStack->list = createList();
return(mtStack);
}
currentPos * createList()
{
currentPos * theHead;
theHead = malloc(sizeof(currentPos)*1); // mallocing inside
theHead->x= 0;
theHead->y=0;
theHead->next = NULL
return(theHead);
}