The error message says that:
Cannot convert `void *` to `treNode *`
It says the problem is here:
*treePtr = malloc(sizeof(TreeNode));
This is my code:
-------------------------------------
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
struct treeNode
{
struct treeNode *leftPtr;
int data;
struct treeNode *rightPtr;
};
typedef struct treeNode TreeNode;
typedef TreeNode *TreeNodePtr;
void insertNode(TreeNodePtr * ,int);
void inorder(TreeNodePtr);
void preorder(TreeNodePtr);
void postorder(TreeNodePtr);
int main()
{
int i, item;
TreeNodePtr rootPtr =NULL;
srand(time( NULL ));
printf("The #'s being placed in the tree are:\n");
for(i=1;i<=10; i++)
{
item = rand() % 15;
printf("%3d", item);
insertNode( &rootPtr, item );
}
printf("Preorder\n");
preorder( rootPtr );
printf("Inorder\n");
inorder(rootPtr);
printf("Postorder\n");
postorder(rootPtr);
getch();
return 0;
}
void insertNode(TreeNodePtr *treePtr ,int value)
{
if(*treePtr == NULL)
{
*treePtr = malloc(sizeof(TreeNode));
if(*treePtr != NULL )
{
(*treePtr)->data = value;
(*treePtr)->leftPtr = NULL;
(*treePtr)->rightPtr = NULL;
}
else
printf("%d not inserted. No memory available.\n", value);
}
else
if(value < (*treePtr)->data)
insertNode( & ((*treePtr)->leftPtr),value);
else if(value > (*treePtr)->data)
insertNode( & ((*treePtr)->rightPtr),value);
else
printf("dup");
}
void inorder(TreeNodePtr treePtr)
{
if(treePtr != NULL)
{
inorder(treePtr->leftPtr);
printf("%3d",treePtr->data);
inorder(treePtr->rightPtr);
}
}
void preorder(TreeNodePtr treePtr)
{
if(treePtr != NULL)
{
printf("%3d",treePtr->data);
preorder(treePtr->leftPtr);
preorder(treePtr->rightPtr);
}
}
void postorder(TreeNodePtr treePtr)
{
if(treePtr != NULL)
{
postorder(treePtr->leftPtr);
postorder(treePtr->rightPtr);
printf("%3d",treePtr->data);
}
}