Download the PHP package slince/tree-samples without Composer
On this page you can find all versions of the php package slince/tree-samples. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download slince/tree-samples
More information about slince/tree-samples
Files in slince/tree-samples
Download slince/tree-samples
More information about slince/tree-samples
Files in slince/tree-samples
Please rate this library. Is it a good library?
Informations about the package tree-samples
PHP版本二叉树遍历算法
包含深度优先算法与广度优先算法; 本示例采用的是非递归算法;借用 SplStack
和 SplQueue
实现两种算法的遍历。在开始讲算法之前,我们先创建一个二叉树节点类 Node
,源码:
深度优先(DFS)
此算法我们使用的是 Stack
,栈的特性是先入后出,借此我们有了如下思路:
- 创建一个空的堆栈
SplStack
对象 -
将需要遍历的二叉树节点对象压入栈
- 循环堆栈对象;
- 弹出栈内的第一个节点,此节点即完成遍历;
-
将当前访问的节点的右子节点和左子节点先后压入堆栈.
- 循环下去,直到堆栈内节点完全弹出即可完成二叉树的遍历。
完整代码
广度优先(BFS)
此算法我们使用的是 Queue
,队列的特性是先入先出,我们的思路如下:
- 创建一个空的堆栈
SplQueue
对象 -
将需要遍历的二叉树节点对象入队
- 循环队列对象;
- 弹出对首的节点,此节点完成访问;
-
将当前访问的节点的左子节点和由子节点先后入队.
- 循环下去,直到队列内元素完全弹出。
完整代码
Usage
Installation:
Basic Usage:
LICENSE
MIT 协议;
All versions of tree-samples with dependencies
PHP Build Version
Package Version
No informations.
The package slince/tree-samples contains the following files
Loading the files please wait ....