二叉树节点的插入和查找#include #include typedef int elemtype;typedef struct Node{ elemtype data; struct Node *Lchild; struct Node *Rchild;}TreeNode;typedef TreeNode *bt;Search_data(TreeNode *t,TreeNode **p,TreeNode **q, elemtype x) //查找函数{ int flag=0; *p=NULL; *q=t; while(*q) { if (x>(*q)->data) { *p=*q; *q=(*q)->Rchild; } else{ if (xdata) { *p=*q; *q=(*q)->Lchild; } else{ flag=1; break; } } } return flag;} InsertNode(TreeNode **t,elemtype x) //插入函数{ int flag=0; TreeNode *q,*s; TreeNode *p=*t; if (
Search_data(*t,&p,&q,x)) { s=(TreeNode *)malloc(sizeof(TreeNode)); s->data=x; s->Lchild=NULL; s->Rchild=NULL; flag=1; if(
p) *t=s; else{ if(x>p->data) p->Rchild=s; else p->Lchild=s; } } return flag;}DeleteNode(TreeNode **t,elemtype x) //删除函数{ int flag=0; TreeNode *q,*s,**f; TreeNode *p=*t; if (Search_data(