查找二叉排序树中最大的键值(c代码)

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

#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);};

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航