回复:(crazy001)高手帮我完成一个程序好么 上机要用...
1.二叉树的二叉链表结构
typedef struct node
{
int key;
struct node *lchild;
struct node *rchild;
}bstnode,*bsttree;
2.二叉排序树的插入:
void insertbst(bstree *bst,int key)
{
bstree s;
if(*bst==NULL)
{
s=(bstree)malloc(sizeof(bstnode));
s->key=key;
s->lchild=NULL; s->rchild=NULL;
*bst=s;
}
else if(key<(*bst)->key)
insertbst(&((*bst)->lchild),key);
else if(key>(*bst)->key)
insertbst(&((*nst)->rchild),key);
}
3.创建二叉排序树
void creatbst(bstree *bst)
{
ine key;
*bst=NULL;
scanf ("%d",&key);
while(key!=999)
{
insertbst(bst,key);
scanf ("%d",&key);
}
}
4.至于遍历的算法应该是中序吧?
void inprder(bstreee root)
{
if(root!=NULL)
{
inorder(root->lchild);
printf ("%d",root->data);
inorder(root->rchild);
}
}