首先约定结点和元素类型的的定义:
typedef int ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
对于二叉树的插入算法,从原理上理解是很简单自然的:我们首先需要考虑的是树是空树该怎么办,这是问题的起点。因此,当树是空的,那么当前插入的值就是根结点的元素值。肯定不能直接把元素直接丢在那里,需要用结点的标准形式封装起来。即:
if(BST == NULL) // 是一棵空树的时候,插入的结点就是根结点
{
Position node = (Position)malloc(sizeof(struct TNode));
node->