深度优先遍历:
对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。(可细分为先序遍历,中序遍历和后序遍历),通常采用栈(堆)实现。
广度优先遍历:
又叫层序遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止。通产采用队列实现。
实例说明:
如图为一棵二叉树
深度优先遍历的顺序为:(由左至右)
A——>B——>D——>E——>H——>C——>F——>G——>I
实现步骤:
①A结点入栈;
②A结点出栈,A结点的子节点进栈(如果先遍历左节点,则右结点先入栈,反之左节点先入栈)。假设此时右节点先入栈,则先push©,再push(B),出栈时则B先出,C后出。
③B出栈,B结点的字结点进栈,同步骤②,先push(E),再push(D)。
④D出栈,此时D没有子结点,就不用执行进栈操