二叉树的建立 插入 删除
来源:互联网 发布:淘宝买虚拟产品 编辑:程序博客网 时间:2024/06/14 00:30
二叉树
原文地址:二叉树节点的查找、插入、删除(C语言)作者:沁阳
#include <stdio.h>
#include <stdlib.h>
typedef int elemtype;
typedef struct Node
{
elemtype data;
struct Node *Lchild;
struct Node *Rchild;
}TreeNode;
typedef TreeNode *bt;
int
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 (x<(*q)->data)
{
*p=*q;
*q=(*q)->Lchild;
}
else{
flag=1;
break;
}
}
}
return flag;
}
int
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{
#include <stdlib.h>
typedef int elemtype;
typedef struct Node
{
}TreeNode;
typedef TreeNode *bt;
int
Search_data(TreeNode *t,TreeNode **p,TreeNode **q, elemtype x)
{
}
int
InsertNode(TreeNode **t,elemtype x)
{