Ruby

根据遍历结果反向构建树

业务中也许会遇到反向构建树的情形,如从外部工具获取到依赖关系、行政区划,组织架构等文本数据时,如何去反向构建树。我们以“获取到了树的深度遍历结果,然后将树结构构建出来,最后用JSON格式输出”,来模拟此类树的反向构建过程。本文采用Ruby作为描述语言。

1) 已获取的树的遍历结果文本

company   
+- org-1   
+- org-2  
|  \- org-2.1   
+- org-3   
+- org-4  
+- org-5  
+- org-6   
+- org-7  
|  +- org-7.1   
|  |  \- org-7.1.1  
|  +- org-7.2  
|  \- org-7.3  
+- org-8  
|  +- org-8.1  
|  \- org-8.2  
+- org-9  
+- org-10  
|  +- org-10.1  
|  \- org-10.2  
+- org-11   
+- org-12  
|  \- org-12.1  
+- org-13   
+- org-14  
|  +- org-14.1   
|  \- org-14.2   
+- org-15   
+- org-16   
|  +- org-16.1  
|  |  +- org-16.1.1  
|  |  |  \- org-16.1.1.1   
|  |  +- org-16.1.2   
|  |  +- org-16.1.3  
|  |  \- org-16.1.4  
|  +- org-16.2  
|  |  \- org-16.2.1  
|  \- org-16.3  
+- org-17  
+- org-18  
|  \- org-18.1  
+- org-19   
+- org-20   
+- org-21   
|  +- org-21.1   
|  \- org-21.2  
+- org-22  
+- org-23  
+- org-24  
|  \- org-24.1  
+- org-25  
+- org-26  
+- org-27  
+- org-28  
|  \- org-28.1  
+- org-29   
|  +- org-29.1   
|  \- org-29.2  
\- org-30

2)Ruby反向构建树代码

阅读更多