gpt4 book ai didi

c - 需要澄清我对树遍历结果的错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:17 24 4
gpt4 key购买 nike

假设我们有下面的树

enter image description here

什么是中序、后序、前序序列?

我手动执行了以下操作:

按顺序:W D V B Y E A C O G K

预购:A B D W V E Y C G O K

后序:W V D Y E B O K G C A

下面是我的代码,它给出了:

按顺序:

B D W V E Y A C G O K

预购:

A B D W V E Y C G O K

下单后:

B D W V E Y C G O K A

我的代码中是否有错误,或者我以错误的方式手动完成了代码?谢谢!

struct treenode{
char c;
struct treenode *left;
struct treenode *right;
};

void preOrder(struct treenode *node){
if(node == NULL) return;
printf("%c ", node -> c);
preOrder(node -> left);
preOrder(node -> right);
return;
}


void postOrder(struct treenode *node){
if(node == NULL) return;
preOrder(node -> left);
preOrder(node -> right);
printf("%c ", node -> c);
return;
}

void inOrder(struct treenode *node){
if(node == NULL) return;
preOrder(node -> left);
printf("%c ", node -> c);
preOrder(node -> right);
return;
}

最佳答案

inOrder 需要调用自己,而不是 PreOrder。

void inOrder(struct treenode *node){
if(node == NULL) return;
inOrder(node -> left);
printf("%c ", node -> c);
inOrder(node -> right);
return;
}

PostOrder 需要调用自己,而不是 PreOrder。

void postOrder(struct treenode *node){
if(node == NULL) return;
postOrder(node -> left);
postOrder(node -> right);
printf("%c ", node -> c);
return;
}

关于c - 需要澄清我对树遍历结果的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com