vlambda博客
学习文章列表

二叉树-二叉链表-先序遍历




二叉树的链式存储之二叉链表。


在单链表中,节点包含两部分,数据域(data)与指针域(next),如图:

所有节点通过指针连在一起。


在二叉链表中,每个节点由三部分组成: 左指针(指向左孩子)、右指针(指向右孩子)、数据域(保存数据),如图:


二叉树的遍历:

        先序遍历(-左-右)

        中序遍历(左--右)

        后序遍历(左-右-

        层次遍历(有多少层)


回忆一下二叉树的定义:二叉树是n(n≥0)个元素的有限集合,该集合或者为空,或者有一个根及两颗互不相交的左子树和右子树组成,其中左子树和右子树也均为二叉树

        二叉树的定义中包含了递归的意思,再继续解读,其实左子树和右子树的左右子树其实也还是二叉树,所以可以使用递归进行遍历。

        对于先序遍历,遍历的顺序为:访问根节点->先序遍历左子树->先序遍历右子树;

        同理,中序遍历:中序遍历左子树->访问根节点->中序遍历右子树;

        后序遍历:后续遍历左子树->后序遍历右子树->访问根节点。