树遍历(前序、顺序、后序)打印结果更改 #包括 #包括 #包括 无效预排序(字符树[],int i) { if(树[i]!='\0') { printf(“%c”,树[i]); 前序(树,i*2); 前序(树,i*2+1); } } void inoorder(字符树[],int i) { if(树[i]!='\0') { 顺序(树,i*2); printf(“%c”,树[i]); 顺序(树,i*2+1); } } 无效后序(字符树[],int i) { if(树[i]!='\0') { 邮购(树,i*2); 邮政订单(树,i*2+1); printf(“%c”,树[i]); } } void main() { 字符数组树[36]={0,'A','B','C','D','E','F','G','H','I','J','K',0,}; printf(“\n预订单:”); 前序(数组树,1); printf(“\n序号:”); 顺序(数组树,1); printf(“\n后序:”); 邮购(ArrayTree,1); getchar(); }
当前打印结果 预订单:ABDHIEJKCFG/ 顺序:HDIBJEKAFCG/ 邮购:HIDJKEBFGCA/ 但我想这样印刷 前订单:ABDHEIJCFGK/ 顺序:HDBIEJAFCGK/ 邮购:HDIJEBFKGCA/树遍历(前序、顺序、后序)打印结果更改 #包括 #包括 #包括 无效预排序(字符树[],int i) { if(树[i]!='\0') { printf(“%c”,树[i]); 前序(树,i*2); 前序(树,i*2+1); } } void inoorder(字符树[],int i) { if(树[i]!='\0') { 顺序(树,i*2); printf(“%c”,树[i]); 顺序(树,i*2+1); } } 无效后序(字符树[],int i) { if(树[i]!='\0') { 邮购(树,i*2); 邮政订单(树,i*2+1); printf(“%c”,树[i]); } } void main() { 字符数组树[36]={0,'A','B','C','D','E','F','G','H','I','J','K',0,}; printf(“\n预订单:”); 前序(数组树,1); printf(“\n序号:”); 顺序(数组树,1); printf(“\n后序:”); 邮购(ArrayTree,1); getchar(); },c,tree,C,Tree,当前打印结果 预订单:ABDHIEJKCFG/ 顺序:HDIBJEKAFCG/ 邮购:HIDJKEBFGCA/ 但我想这样印刷 前订单:ABDHEIJCFGK/ 顺序:HDBIEJAFCGK/ 邮购:HDIJEBFKGCA/ 如何更改它?代码看起来正确,但数据错误。它不代表图表中的树。例如,'H'的右同胞应该是0(或NULL) 更正后的数组如下所示: #include <stdio.h> #include <stdlib.h> #include <memo
如何更改它?代码看起来正确,但数据错误。它不代表图表中的树。例如,
'H'
的右同胞应该是0(或NULL)
更正后的数组如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
void preorder(char tree[], int i)
{
if(tree[i] != '\0')
{
printf("%c", tree[i]);
preorder(tree, i*2);
preorder(tree, i*2+1);
}
}
void inorder(char tree[], int i)
{
if(tree[i] != '\0')
{
inorder(tree, i*2);
printf("%c", tree[i]);
inorder(tree, i*2+1);
}
}
void postorder(char tree[], int i)
{
if(tree[i] != '\0')
{
postorder(tree, i*2);
postorder(tree, i*2+1);
printf("%c", tree[i]);
}
}
void main()
{
char ArrayTree[36] = { 0,'A','B','C','D','E','F','G','H','I','J','K',0, };
printf("\n preorder : ");
preorder(ArrayTree, 1);
printf("\n inorder: ");
inorder(ArrayTree, 1);
printf("\n postorder: ");
postorder(ArrayTree, 1);
getchar();
}
大小只需为32即可包含高度为5(加上未使用的0索引)的完整树。当它显然不是Java代码时,为什么要将其标记为“Java”呢?对不起,我忘记了删除我以前创建的Java标记。您发布的数组与树图像无关哦…那么,我写错了代码。。。。。如何修复它的关系?
char ArrayTree[32] = { 0,'A','B','C','D','E','F','G','H',0,'I','J',0,0,0,'K' };