有如下字符串:"北京+长沙/武汉+西安/兰州+新疆"
字符是不定长的,'+'号表示中转,'/'表示或 也就是 长沙/武汉 可以在长沙中转也可以在武汉中转
要求得到:a.北京->长沙->西安->新疆
b.北京->长沙->兰州->新疆
c.北京->武汉->西安->新疆
d.北京->武汉->兰州->新疆
请大家帮忙,成份感谢.
C#那边看到的一个题,想到了图的深度遍历,但是应该怎么实现呢,有没有人试试
字符是不定长的,'+'号表示中转,'/'表示或 也就是 长沙/武汉 可以在长沙中转也可以在武汉中转
要求得到:a.北京->长沙->西安->新疆
b.北京->长沙->兰州->新疆
c.北京->武汉->西安->新疆
d.北京->武汉->兰州->新疆
请大家帮忙,成份感谢.
C#那边看到的一个题,想到了图的深度遍历,但是应该怎么实现呢,有没有人试试
http://topic.csdn.net/u/20100428/10/968e4998-06c5-4d91-a040-39299691cf31.html
List infoList = new ArrayList();
String[] infos = info.split(CHANGE);
String result = null;
for (int i = 0; i < infos.length; i++) {
String[] temp = infos[i].split(TRANSLATE);
if (infoList.size() > 0) {
int size = infoList.size();
for (;;) { for (int j = 0; j < temp.length; j++) {
String append = (String) infoList.get(0);
append += temp[j] + "->";
infoList.add(append);
}
size--;
infoList.remove(0);
System.out.println(size);
if (size < 1)
break;
}
} else { for (int j = 0; j < temp.length; j++) {
result = new String();
result += temp[j] + "->";
infoList.add(result);
}
} }
return infoList;
}
如果用图来表示的话,你要先构造节点
伪代码:
Node{
Node(String s,List<Node> l){
this.s=s;
next=l;
}
String s;
List<Node> next;
}用节点构造好这个图可以用递归打印来遍历
PrintGraphics(Node d){
System.out.println(d.s);
for(int i=0;i<d.next.size;i++) PrintGraphics(d.next.get(i));
}
同样一个帖子,在C#区就能得到很好的回答
在java区就会有人告诉你“百度”“谷歌”
我也不是说没代码就没有发言权
只是一般我都会自己实践一下才把问题拿出来跟大家分享的
如果耽搁您时间了 抱歉