树的插入(创建)为什么要使用指针的指针

一个二叉排序树的例子首先看一个常见的二叉排序树的操作,下面的代码包括插入、创建和中序遍历。摘自这里。#include<stdio.h>#include<stdlib.h>typedef int ElemType;struct BTreeNode{ ElemType data; struct BTreeNode* left; s...
摘要由CSDN通过智能技术生成

一个二叉排序树的例子

首先看一个常见的二叉排序树的操作,下面的代码包括插入、创建和中序遍历。摘自这里

#include<stdio.h>
#include<stdlib.h>

typedef int ElemType;
struct BTreeNode
{
    ElemType data;
    struct BTreeNode* left;
    struct BTreeNode* right;
};

//递归方式插入
void Insert(struct BTreeNode** BST, ElemType x)
{
    if (*BST == NULL) //在为空指针的位置链接新结点
    {
        struct BTreeNode* p = (BTreeNode*)malloc(sizeof(struct BTreeNode));
        p->data = x;
        p->left = p->right = NULL;
        *BST = p;
    }
    else if (x < (*BST)->data) //向左子树中完成插入运算
        Insert(&((*BST)->left), x);
    else
        Insert(&((*BST)->right), x); //向右子树中完成插入运算
}

//创建二叉搜索树,根据二叉搜索树的插入算法可以很容易实现
void CreateBSTree(struct BTreeNode** BST, ElemType a[], int n)
{
    int i;
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值