#include<stdio.h>
#include<stdlib.h>
char s[26];
int n;
void qx(int x){
printf("%c ",s[x]);
if(2*x<=n)qx(2*x);
if(2*x+1<=n)qx(2*x+1);//前序遍历:根->左->右
}
void zx(int x){
if(2*x<=n)zx(2*x);
printf("%c ",s[x]);
if(2*x+1<=n)zx(2*x+1);//中序遍历:左->根->右
}
void hx(int x){
if(2*x<=n)hx(2*x);
if(2*x+1<=n)hx(2*x+1);
printf("%c ",s[x]);//后序遍历:左->右->根
}
int main(){
int i,j,k,m;
scanf("%d",&n);
for(i=1;i<=n;i++){
s[i]=64+i;
}
puts("qxbl:");
qx(1);
puts("\nzxbl:");
zx(1);
puts("\nhxbl:");
hx(1);
system("pause");
return 0;
}
树的遍历方式(不知道对不对)
最新推荐文章于 2022-10-08 21:09:28 发布