您的位置:首页 > 其它

树的遍历方式(不知道对不对)

2015-08-08 17:10 232 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: