查找二叉排序树中最大的键值(c代码)
#include<stdio.h>
#include<conio.h>
struct tree{
char key;
struct tree *Lchild,*Rchild;
};
struct tree *create_btree(struct tree *t,struct tree *r,char key)
{
if (r ==0 )
{
r=new (struct tree);
if ( r == 0)
{
printf("Out of memory/n"); return 0 ;
}
r->Lchild= 0; r->Rchild=0; r->key=key;
if (t)
{
if(key<t->key) t->Lchild=r;
else
t->Rchild=r;
}
else
{
r->Rchild=0; r->Lchild = 0;
}
return r;
}
if (key < r->key)
create_btree(r,r->Lchild,key);
if(key>=r->key)
create_btree(r,r->Rchild,key);
return t;
};
struct tree *search_btree(struct tree *t,char key1)
{ struct tree *p;
p=t;
if (!p)
{ printf("Empty btree/n"); return p; }
while(p->Rchild) {p=p->Rchild;};
printf("Successful search/n key1=%c/n",p->key);
return p;
};
void main()
{
char s[100], c, e,q;
struct tree *t=0, *p;
printf("Input a letter for Creating the Binary_Tree ( Directly press <Enter> to stop ):/n");
while (*s){
printf("/nInput a letter: ");
e=getch(); /*#include<conio.h>*/
putch(e); /*#include<conio.h>*/
if(e==13) break;
if (!t)
t=create_btree(t,t,e);
else
create_btree(t,t,e);
};
search_btree(t,0);
printf("/n");
printf("结束请按q!");
if(getchar()=='q') printf("再见");
else {while(1);};
}