高手帮我完成一个程序好么 上机要用
哪位高手能帮我完成一个程序,要求:输入一批数据,以999为结束,建立一棵二叉排序树,通过遍历输出递增排序结果。用TURBO C编写 用到的函数我写出来,至于怎么组合起来我就不会了(大部分其实是MAIN还数不会写)
也不知道我给的函数全不全,哪位高手能帮我完成这个程序,并能运行。 谢谢高手
函数(采用自数据结构书上,如果大家有更好的算法也可)附下:
----------------解决方案--------------------------------------------------------
回复:(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);
}
}
----------------解决方案--------------------------------------------------------
就是用上面的大概这些函数 组成一个程序 完成上述功能
----------------解决方案--------------------------------------------------------
哪位高手能帮我做一下啊 急用啊
----------------解决方案--------------------------------------------------------