【发布时间】:2020-06-16 06:41:18
【问题描述】:
我需要创建一个函数来计算二叉树的叶子数量并打印最高和最低值,对于这个作业我不能使用递归,所以我正在努力弄清楚如何去做。结构是:
typedef struct node {
int value;
struct node *left;
struct node *right;
} Node ;
为了插入一个节点,我创建了一个函数
void insert(Node** tree, int value){
if(*tree== NULL){
*tree= createNode(value);
} else {
int sValue= (*tree)->value;
if(value < sValue){
insert(&(*tree)->left, value);
} else {
insert(&(*tree)->right, value);
}
}
}
Node* createNode(int value){
Node* newNode= (Node*)malloc(sizeof(Node));
newNode->value= value;
newNode->left= NULL;
newNode->left= NULL;
return newNode;
}
【问题讨论】:
-
this question 的答案可能会有所帮助
-
您可以使用堆栈模拟递归。
-
使用队列卢克。
-
正如其他人所说,您需要第二个结构来跟踪您需要探索的节点。 Here 是一个使用堆栈的示例,它应该让您了解您的解决方案是什么样的。
标签: c binary-tree