树的孩子兄弟法表示的打印
时间: 2023-05-29 13:01:16 浏览: 130
孩子兄弟法是一种树的链式存储结构,其中每个节点包含两个指针,一个指向该节点的第一个孩子节点,另一个指向该节点的下一个兄弟节点。
如果我们要打印孩子兄弟法表示的树,可以采用递归的方式遍历每个节点,先打印该节点的值,然后递归遍历其孩子节点和兄弟节点,依此打印每个节点的值。
下面是一个示例代码,可以打印出孩子兄弟法表示的树:
```
#include <iostream>
using namespace std;
struct TreeNode {
char val;
TreeNode *firstChild;
TreeNode *nextSibling;
TreeNode(char x) : val(x), firstChild(NULL), nextSibling(NULL) {}
};
void printTree(TreeNode *root) {
if (root == NULL)
return;
cout << root->val << " ";
// 递归打印孩子节点和兄弟节点
printTree(root->firstChild);
printTree(root->nextSibling);
}
int main() {
TreeNode *root = new TreeNode('A');
root->firstChild = new TreeNode('B');
root->firstChild->nextSibling = new TreeNode('C');
root->firstChild->nextSibling->firstChild = new TreeNode('D');
root->firstChild->nextSibling->firstChild->nextSibling = new TreeNode('E');
printTree(root);
cout << endl;
return 0;
}
```
以上代码中,我们用一个TreeNode结构体表示树的节点,包含三个成员变量:val表示节点的值,firstChild指向该节点的第一个孩子节点,nextSibling指向该节点的下一个兄弟节点。打印树的函数printTree采用递归的方式遍历每个节点,并输出节点的值。最后,我们创建一个树的示例,并调用printTree函数打印出来。