typedef struct {
int key;
struct BSTNode *lchild, *rchild;
} BSTNode, *BSTree;
名称的意义:
-
BSTNode
:- 它是 二叉搜索树结点(Binary Search Tree Node)的结构体类型名称。
- 使用
BSTNode
表示一个具体的 二叉搜索树结点,例如:BSTNode node;
这里node
是一个 具体的结点,它包含key
、左子结点指针lchild
和右子结点指针rchild
。
-
BSTree
:- 它是
BSTNode*
的 指针类型别名,即指向BSTNode
类型的指针。 - 使用
BSTree
来表示 指向根节点的树的指针,即一个指向 整个二叉搜索树 或者 子树 的指针。 - 例如:
这里的BSTree tree;
tree
是一个指向BSTNode
结构的指针,表示 树的根结点 或 一个子树。
- 它是
区别与应用:
-
BSTNode
:代表单个二叉树结点的结构体。- 用于定义单个节点,例如:
BSTree root = NULL;
- 适用于操作单个节点或通过结构体直接访问左右子节点。
- 用于定义单个节点,例如:
-
BSTree
:是BSTNode*
的别名,代表指向一个BSTNode
的指针。- 用于表示整个树或子树的根指针,通常用于递归操作树的结构。
- 例如:
BSTree root = NULL;
- 它是一个指针类型,用于动态分配内存来表示树的结点,例如:
root = (BSTree)malloc(sizeof(BSTNode)); root->key = 10; root->lchild = NULL; root->rchild = NULL;
不同引用方式的效果:
BSTNode
用于声明实际的二叉树节点,能够直接操作节点的内容。BSTree
用于指针形式操作树或节点,方便递归和动态分配内存。在递归操作时,通常使用BSTree
(即指针)传递树的子结构。