二叉树 插入

代码如下,姑且从一个叫做tree.in的文件中读取数据,在cout中输出,每个输出占单独一行。
函数功能基本就不用说明了吧(要说明可以在追问中提出来)
#include<fstream>
#include<iostream>
typedef unsigned int uint;
using namespace std;
ifstream fin("tree.in");
class BST
{
private:
struct Node
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,二叉树插入节点可以通过递归实现。具体步骤如下: 1.定义一个结构体来表示二叉树的节点,包括节点的值和左右子节点指针。 2.定义一个函数来插入节点,函数需要传入二叉树的根节点指针和要插入的节点值。 3.如果根节点为空,说明这是一棵空树,直接将要插入的节点作为根节点。 4.如果要插入的节点值小于根节点的值,则递归调用插入函数,将要插入的节点插入到左子树中。 5.如果要插入的节点值大于根节点的值,则递归调用插入函数,将要插入的节点插入到右子树中。 6.如果要插入的节点值等于根节点的值,则说明这个节点已经存在,不需要插入。 下面是一个示例代码: ```c #include <stdio.h> #include <stdlib.h> // 定义二叉树节点结构体 typedef struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; } TreeNode; // 插入节点函数 void insert(TreeNode **root, int val) { if (*root == NULL) { // 如果根节点为空,直接将要插入的节点作为根节点 *root = (TreeNode *)malloc(sizeof(TreeNode)); (*root)->val = val; (*root)->left = NULL; (*root)->right = NULL; } else if (val < (*root)->val) { // 如果要插入的节点值小于根节点的值,则递归调用插入函数,将要插入的节点插入到左子树中 insert(&((*root)->left), val); } else if (val > (*root)->val) { // 如果要插入的节点值大于根节点的值,递归调用插入函数,将要插入的节点插入到右子树中 insert(&((*root)->right), val); } } // 测试代码 int main() { TreeNode *root = NULL; insert(&root, 5); insert(&root, 3); insert(&root, 7); insert(&root, 1); insert(&root, 9); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值