补个档,第十周学的还是树
定义创建和输出见博2,这里记录查找和主函数
1 int chazhao(BiTree shu,char yuanshu) 2 {//yuanshu为要查找的元素 3 int jishu=0;//jishu为用来计数的,找到就加1 4 if(shu==NULL)//空树就返回0 5 return 0; 6 7 if(shu->data==yuanshu) 8 return 1;//根节点就找到,那就返回1层 9 10 jishu=chazhao(shu->lchild,yuanshu);//左子树 11 if(jishu)//找到了就返回 12 return jishu+1; 13 14 jishu=chazhao(shu->rchild,yuanshu);//右子树 15 if(jishu)//找到了就返回 16 return jishu+1; 17 18 return 0;//都没找到那就空了呗 19 }
//主函数 void main() { char yuanshu; BiTree T;//建空树 CreateBiTree(&T);//创建树的二叉链表 Print(T);//输出二叉树元素(先序) printf(" 请输入要查找的元素:"); getchar();//吸收回车 scanf("%c",&yuanshu);//输入要查找的元素 printf("它在第%d层(0就是没找到) ",chazhao(T,yuanshu)); printf(" 请输入要查找的元素:");//第二次查找 getchar(); scanf("%c",&yuanshu); printf("它在第%d层(0就是没找到) ",chazhao(T,yuanshu)); }