void InOrderTraver(TNode*& root) //递归法中序遍历 { if(root!=NULL) { InOrderTraver(root->lchild); cout<<root->data<<" "; InOrderTraver(root->rchild); } } void posOrderTraver(TNode*& root)//递归法后序遍历 { if(root!=NULL) { posOrderTraver(root->lchild); posOrderTraver(root->rchild); cout<<root->data<<" "; } } int BTHeight(TNode *t)//计算二叉树的深度 { int ans = 0; if(t == NULL) return 0; else if(t != NULL) ans += max(ans,max(BTHeight(t->lchild),BTHeight(t->rchild))+1); return ans; } int BTLeafNode(TNode *t)//计算二叉树的叶子节点数 { if(t != NULL) { if(t->lchild == NULL && t->rchild == NULL) { printf("%c",t->data); cnt++; } else { BTLeafNode(t->lchild); BTLeafNode(t->rchild); } } return cnt; }每一段的意思
时间: 2024-04-07 10:29:14 浏览: 107
二叉树非递归遍历.zip-/二叉树非递归遍历.zip-二叉树非递归遍历.zip 二叉树非递归遍历.zip
这是一段关于二叉树的遍历、计算深度和计算叶子节点数的代码。下面是各个函数的具体说明:
1. InOrderTraver函数用于递归地进行中序遍历。函数接收一个指向TNode类型的指针root的引用,表示要遍历的二叉树的根节点。函数首先递归地遍历左子树,然后输出当前节点的数据域,最后递归地遍历右子树,直到遍历完整棵树。
2. posOrderTraver函数用于递归地进行后序遍历。函数接收一个指向TNode类型的指针root的引用,表示要遍历的二叉树的根节点。函数首先递归地遍历左子树和右子树,然后输出当前节点的数据域,直到遍历完整棵树。
3. BTHeight函数用于计算二叉树的深度。函数接收一个指向TNode类型的指针t,表示要计算深度的二叉树的根节点。函数首先判断t是否为空,如果为空,返回0;否则,递归地计算左子树和右子树的深度,并将其中较大的值加1作为当前节点的深度。最后返回整棵树的深度。
4. BTLeafNode函数用于计算二叉树的叶子节点数。函数接收一个指向TNode类型的指针t,表示要计算叶子节点数的二叉树的根节点。函数首先判断t是否为空,如果为空,返回0;否则,如果t是叶子节点,则输出该节点的数据域并将计数器cnt加1,否则递归地计算左子树和右子树的叶子节点数。最后返回整棵树的叶子节点数。
阅读全文