用结构体来定义二叉树中的指针域,二叉树的头结点与数据域也可以用结构体实现。
二叉树的重点操作是定位,下面我们看一下定位操作:
定位的关键技巧:
1.利用二进制中的0和1分别表示left和right;
2.位运算是实现指路法的基础。
至此,我们就可以来实现二叉树的相关操作了,上代码。
首先定义相关结构体及其他变量
#define BT_LEFT 0 // 左边
#define BT_RIGHT 1 // 右边
// 定义新数据类型,用于封装函数
typedef void BTree;
typedef unsigned long long BTPos;
// 定义二叉树左右指针结构体
typedef struct _tag_BTreeNode BTreeNode;
struct _tag_BTreeNode
{
BTreeNode* left; // 二叉树左结点指针
BTreeNode* right; // 二叉树右结点指针