日期:2014-05-20  浏览次数:20691 次

一个关于循环的小问题
场景是这样的:
现在有一个List集合,List中的元素都是int类型。而且排列是有规律的。比如是这样的
(1,2,3,3,2,3,3,4,4,2,3,3,2,3,4,4,……)
我想要的显示结果是树形显示。就好像做菜单管理的时候,那种上下级的关系。这里可以认为1是2的父级,2是3的父级,3是4的父级。。。
—1
  —2
    —3
    —3
  —2
    —3
    —3
      —4
      —4
  —2
    —3
    —3
  —2
    —3
      —4
      —4     
……


谁帮写个简单一点的实现方案。

------解决方案--------------------


from __future__ import print_function
map(lambda x: print(' '*x , x), [1, 2, 3, 2, 1, 2, 3])
------解决方案--------------------
建议设计好数据结构,比如简单的设计一个Node类,里面东西很简单:
Node.java
private Node parent;//父节点
private List<Node> childrenList;//子节点列表
private int value;//当前值

....//其它辅助方法
------解决方案--------------------
import java.util.LinkedList;
import java.util.List;


public class PrintList {
public static void main(String[] args){
int[] a={1,3,2,4,5,2};
List<Integer> l=new LinkedList<Integer>();
for(int b:a){
l.add(b);
}
printList(l);
}
public static void printList(List<Integer> li){
for(int i:li){
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
System.out.println("——"+i);
}
}
}