c++以孩子兄弟法做存储结构,求树中结点x的第i个孩子
时间: 2024-05-06 11:16:51 浏览: 55
树的实现--利用二叉链表(孩子-兄弟)存储结构
5星 · 资源好评率100%
假设树的存储结构如下:
```c++
struct Node {
int val;
Node *firstChild; // 第一个孩子结点指针
Node *nextSibling; // 下一个兄弟结点指针
};
```
则可以使用以下代码实现查找结点x的第i个孩子:
```c++
Node* findIthChild(Node *x, int i) {
if (x == nullptr || i < 1) {
return nullptr;
}
Node *child = x->firstChild;
for (int j = 1; child != nullptr && j < i; j++) {
child = child->nextSibling;
}
return child;
}
```
其中,如果结点x为nullptr或者i小于1,则返回nullptr。否则,从结点x的第一个孩子开始遍历,找到第i个孩子并返回其指针。
阅读全文