Проблема может заключаться в том, что вы никогда не добавляете новый узел в дерево.
parent = new treeNode;
parent->data=num;
parent->left=NULL;
parent->right=NULL;
temp=parent;
Вы присваиваете свой новый узел temp и parent, которые являются временными переменными и, следовательно, не существуют вне функции. Что вам нужно сделать, это назначить ваш новый узел либо родительскому -> левому, либо родительскому -> правому, в зависимости от того, с какой стороны находится ваш новый ввод, чтобы связать его с деревом. Поэтому то, что вы хотите сделать, это что-то вроде следующего:
temp = new treeNode;
temp->data=num;
temp->left=NULL;
temp->right=NULL;
if(num < parent->data)
parent->left = temp;
else
parent->right = temp;