返回首页   进站必读

19.1 二叉树的定义


19.1 二叉树的定义

链表的每个节点可以有一个后继,而二叉树(Binary Tree)的每个节点可以有两个后继。比如这样定义二叉树的节点:

typedef struct node *link;
struct node {
	unsigned char elem;
	link l, r;
};

二叉树可以这样递归的定义:
就像链表有头指针一样,每个二叉树哟一个根指针。根指针可以是NULL,表示空二叉树,或者根指针可以指向一个节点,成为根节点,根节点除了保存元素之外还有两个指针域,这俩个指针域又分别是另外俩个二叉树(左子树和右子树)的根指针。

上图举例示意了几种情况。 1、单节点的二叉树:左子树和右子树都是空二叉树。 2、只有左子树的二叉树,右子树是空二叉树。 3、只有右子树的二叉树,左子树是空二叉树。 4、一般的二叉树:左右子树都不为空。注意上图中由圈和线段组成的简化图示。