2024年6月2日发(作者:)
c++ node递归定义
在 C++ 中,你可以使用类来实现节点(Node)的递归定义。以
下是一个简单的例子,演示如何使用递归定义一个二叉树的节点:
#include
// 定义二叉树节点
class TreeNode {
public:
int data;
TreeNode* left;
TreeNode* right;
// 构造函数
TreeNode(int value) : data(value), left(nullptr),
right(nullptr) {}
};
// 递归函数:插入节点
TreeNode* insertNode(TreeNode* root, int value) {
if (root == nullptr) {
// 如果树为空,创建新节点
return new TreeNode(value);
1 / 4
}
// 递归插入左子树或右子树
if (value < root->data) {
root->left = insertNode(root->left, value);
} else if (value > root->data) {
root->right = insertNode(root->right, value);
}
return root;
}
// 递归函数:中序遍历
void inOrderTraversal(TreeNode* root) {
if (root != nullptr) {
// 中序遍历:左 -> 根 -> 右
inOrderTraversal(root->left);
std::cout << root->data << " ";
inOrderTraversal(root->right);
}
}
2 / 4
int main() {
// 创建根节点
TreeNode* root = nullptr;
// 插入节点
root = insertNode(root, 5);
insertNode(root, 3);
insertNode(root, 7);
insertNode(root, 2);
insertNode(root, 4);
// 中序遍历
std::cout << "In-Order Traversal: ";
inOrderTraversal(root);
std::cout << std::endl;
return 0;
}
在这个例子中,TreeNode 类表示二叉树的节点,其中包含数据
(data)、左子树指针(left)和右子树指针(right)。insertNode
函数用于递归地插入节点,而 inOrderTraversal 函数用于递归地进
行中序遍历。
3 / 4
这只是一个简单的示例,你可以根据实际需要定义更复杂的节点
结构和相关的操作。递归定义通常在树形结构中非常有用,例如二叉
树、链表等。
4 / 4


发布评论