#include <stdio.h>
typedef struct node{
int data;
struct node *lchild;
struct node *rchild;
int count;
}NODE,*ptr;
void insert(NODE *node,NODE *inode){
if(node &&inode){
if(node->data == inode->data ){
printf("-%d-%d--\n",node->data,inode->data);
node->count++;
}else if(node->data <inode->data){
printf("<<<<\n");
if(node->lchild){
printf("<<<<1111\n");
insert(node->lchild,inode);
}else{
printf("<<<<222\n");
node->lchild=inode;
}
}else {
printf(">>>>>\n");
if(node->rchild){
printf(">>>>>11111\n");
insert(node->rchild,inode);
}else{
printf(">>>>>2222\n");
node->rchild=inode;
}
}
}
}
void prtTree(NODE *node){
if(node){
printf("node->data:%d,node->count:%d\n",node->data,node->count);
prtTree(node->lchild);
prtTree(node->rchild);
}else {
return ;
}
}
int main(void){
NODE *node1 = (NODE * )malloc(sizeof(NODE));
node1->data=4;
node1->lchild=NULL;
node1->rchild=NULL;
NODE *node2 = (NODE * )malloc(sizeof(NODE));
node2->data=3;
node2->lchild=NULL;
node2->rchild=NULL;
NODE *node3 = (NODE * )malloc(sizeof(NODE));
node3->data=2;
node3->lchild=NULL;
node3->rchild=NULL;
NODE *node4 = (NODE * )malloc(sizeof(NODE));
node4->data=10;
node4->lchild=NULL;
node4->rchild=NULL;
NODE *node5 = (NODE * )malloc(sizeof(NODE));
node5->data=112;
node5->lchild=NULL;
node5->rchild=NULL;
insert(node1,node2);
insert(node1,node3);
insert(node1,node4);
insert(node1,node5);
prtTree(node1);
}