Я просмотрел несколько вопросов, но я не могу понять, что происходит. Я пытаюсь преобразовать свое двоичное дерево в связанный список, который находится либо в предварительном, либо в последующем порядке. Мой код возвращает связанный список, состоящий из нулей. Я исключил код для пост-заказа, так как в данном случае он практически такой же, как и до. Вот мой соответствующий код:
typedef struct list {
int data;
struct list *next;
} List;
List* createNode(int data)
{
// create node in memory
List* list = malloc(sizeof(list));
// init parameters
list->data = data;
list->next = NULL;
}
void printList(List *list)
{
//if(list->next == NULL) printf("y");
while(list != NULL) {
printf("%d", list->data);
list = list->next;
}
}
void preOrder(node *tree, List *list)
{
if(tree == NULL) return;
// visit root
list = createNode(tree->data);
// left
preOrder(tree->left, list->next);
// right
preOrder(tree->right, list->next);
}
int preL(node *a)
{
// create preList
List *preList = malloc(sizeof(List));
preOrder(a,preList);
printList(preList);
}