二叉树的中序遍历可以通过递归来实现。以下是用C语言编写的递归中序遍历的示例代码:
#include <stdio.h> #include <stdlib.h> // 定义二叉树节点结构 struct TreeNode { int data; struct TreeNode* left; struct TreeNode* right; }; // 递归中序遍历函数 void inorderTraversal(struct TreeNode* root) { if (root != NULL) { // 递归遍历左子树 inorderTraversal(root->left); // 处理当前节点 &澳门红姐论坛祥彩联盟nbsp; printf("%d ", root->data); // 递归遍历右子树 inorderTraversal(root->right); } } // 创建新的二叉树节点 struct TreeNode* createNode(int value) { struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode)); if (newNode != NULL) { newNode->data = value; newNode->left = NULL; newNode->right = NULL; } return newNode; } int main() { // 创建一个简单的二叉树 struct TreeNode* root = createNode(1); root->left = createNode(2); root->right = createNode(3); root->left->left = createNode(4); root->left->right = createNode(5); // 执行中序遍历并打印结果 inorderTraversal(root); // 释放二叉树节点的内存 // 在实际应用中可能需要更复杂的释放内存的逻辑 free(root->left->left); free(root->left->right); free(root->left); free(root->right); free(root); return 0; }
评论列表