非递归(栈)算法解析XML思路

1 引言

对于树状层次结构的数据,往往有两种处理思路:递归算法处理和非递归(栈)算法处理。

递归算法:简单易懂,且有些场景还必须使用递归算法才能处理。但递归算法也有其先天性的缺陷:运行效率较低、运行过程所耗费的空间资源也相对较高。

非递归(栈)算法:算法相对比较复杂,不太好理解,但其运行效率较高。

2 处理流程

2.1 解析XML

以下是依据XML格式字串创建XML树的非递归(栈)算法的解析流程,此过程中需要重点解决:二叉树表示多叉树、栈和树的结合使用等。

非递归(栈)算法解析XML思路

图1 解析XML

2.2 组合XML

以下是依据XML树生成对应的的XML格式字串的非递归(栈)算法的处理流程。

非递归(栈)算法解析XML思路

图2 组合XML

作者: 邹祁峰

2013.03.07 22:39