[英]Post-order/Pre-order Traversal of Binary Tree
I have a pre-order traversal function that looks like this: 我有一个如下的遍历函数:
void listInPreOrder(node* hd){
if(hd != NULL) {
printf("%d, ", hd->value);
listInPreOrder(hd->left);
listInPreOrder(hd->right);
}
}
That in fact works, but I thought that making it post order would be as simple as this 这实际上是可行的,但我认为将其定为订购将如此简单
void listInPostOrder(node* hd){
if(hd != NULL) {
listInPreOrder(hd->left);
listInPreOrder(hd->right);
printf("%d, ", hd->value);
}
}
But unfortunately it does not work so well. 但不幸的是,它不能很好地工作。 I'm wondering how to fix this, maybe I'm doing something simple wrong. 我想知道如何解决此问题,也许我在做一些简单的错误。 Or maybe it's completely wrong. 也许这是完全错误的。
How about you change this: 你如何改变这个:
void listInPostOrder(node* hd){
if(hd != NULL) {
listInPreOrder(hd->left); // PRE order ???
listInPreOrder(hd->right); // PRE order ???
printf("%d, ", hd->value);
}
}
to this: 对此:
void listInPostOrder(node* hd){
if(hd != NULL) {
listInPostOrder(hd->left);
listInPostOrder(hd->right);
printf("%d, ", hd->value);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.