Funkcja createTree działa poprawnie, ale przy warunku "if(*a < ((n)->v))" w funkcji addNode jest coś nie tak i poza korzeniem nic ta funkcja nie potrafi dodac :( Oświeci mnie ktoś?
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int v;
struct node* left ;
struct node* right;
}node;
node* root = NULL;
void createTree(int a){
root = (node*)malloc(sizeof(node));
root->v = a;
root->left = root->right = NULL;
}
void addNode(node** n, int a){
if((*n) == NULL){
node* n = (node*)malloc(sizeof(node));
n->v = a;
n->left = n->right = NULL;
}
else
if(a < ((*n)->v))
addNode(&(*n)->left, a);
else
addNode(&(*n)->right, a);
}
void preorder(node** r){
if((*r) != NULL){
printf("%d\n",(*r)->v);
preorder(&(*r)->left);
preorder(&(*r)->right);
}
}
int main()
{
int i;
createTree(8);
for(i = 0; i<100; i++)
addNode(&root, i);
preorder(&root);
getch();
return 0;
}