首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用C语言写一段二叉树的代码,内附完整代码。

大家好,我是贤弟!

下面是一段C语言的二叉树代码,实现了二叉树的创建、插入、查找和遍历功能:```c

#include #include

// 定义二叉树节点结构体typedef struct TreeNode { int val; struct TreeNode* left; struct TreeNode* right;} TreeNode;

// 创建新节点TreeNode* createNode(int val) { TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode)); node->val = val; node->left = NULL; node->right = NULL; return node;}

// 插入节点void insertNode(TreeNode** root, int val) { if (*root == NULL) { *root = createNode(val); return; } if (val < (*root)->val) { insertNode(&((*root)->left), val); } else { insertNode(&((*root)->right), val); }}

// 查找节点TreeNode* searchNode(TreeNode* root, int val) { if (root == NULL || root->val == val) { return root; } if (val < root->val) { return searchNode(root->left, val); } else { return searchNode(root->right, val); }}

// 中序遍历void inorderTraversal(TreeNode* root) { if (root != NULL) { inorderTraversal(root->left); printf("%d ", root->val); inorderTraversal(root->right); }}

int main() { TreeNode* root = NULL; insertNode(&root, 5); insertNode(&root, 3); insertNode(&root, 7); insertNode(&root, 1); insertNode(&root, 4); insertNode(&root, 6); insertNode(&root, 8);

printf("中序遍历结果为:"); inorderTraversal(root); printf("\n");

TreeNode* node = searchNode(root, 4); if (node != NULL) { printf("查找到节点值为%d的节点\n", node->val); } else { printf("未找到该节点\n"); }

return 0;}```

注意:

该代码中,我们定义了二叉树节点的结构体,包括节点值和左右子节点指针。

然后实现了创建节点、插入节点、查找节点和中序遍历等功能。在主函数中,我们创建了一个二叉树并进行了中序遍历,同时查找了节点值为4的节点。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OdVbnLYA1GpvM3g6RhCK7gLw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券