为什么我们在节点结构中使用左右节点指针?

问题描述

这是类二叉搜索

为什么我们在节点结构中创建节点左右指针,这将再次具有 3 个属性?为什么不直接使用 int

class bst
{
 struct node
    {
        int key;
        node *left;
        node *right;
    };
    node *root;
};

解决方法

根据您的评论,我相信我理解您的困惑。

node 结构包含指向其他 node 结构而不是 int 的指针的原因是为了允许树具有多个级别。

每个节点都有一个值,可以有一个或两个子节点,但每个节点都可以有自己的子节点。

BST - 二叉搜索树,可以增长到您的计算机内存允许的大小,具体取决于您想在其中存储多少数据。

看看这张图片(取自维基百科):

Binary Search Tree

如果使用指向 int 的指针,则只能存储 8、3 和 10,但无法存储 1、6、14 和其余值。

但是每个节点都包含一个值指向其他节点的指针,您可以根据需要链接任意数量的节点。