如何对树形字符串数据进行排序假如说一数组tb中存放了如下的字符串,d:\ABC
d:\ABC\Y.txt
d:\ABC\X.txt
d:\ABC\Your\b.txt
d:\ABC\Your\a.txt
d:\ABC\Your
d:\ABC\My\X.txt
d:\ABC\My\Y.txt
d:\ABC\My\b\b.txt
d:\ABC\My\b\a.txt
d:\ABC\My\a\a.txt
d:\ABC\My\a\b.txt
d:\ABC\My
d:\ABC\MY\a
d:\ABC\My\b
d:\ABC\Your\1\a.txt
d:\ABC\Your\1\b.txt
d:\ABC\Your\1很明显是一树形结构的字符串描述,但是它不是有序排放的。如何使用一种算法使它能像资源管理器一样的排序。使结果序列为d:\ABC
d:\ABC\X.txt
d:\ABC\Y.txt
d:\ABC\My
d:\ABC\My\X.txt
d:\ABC\My\Y.txt
d:\ABC\MY\a
d:\ABC\My\a\a.txt
d:\ABC\My\a\b.txt
d:\ABC\My\b
d:\ABC\My\b\a.txt
d:\ABC\My\b\b.txt
d:\ABC\Your
d:\ABC\Your\a.txt
d:\ABC\Your\b.txt
d:\ABC\Your\1
d:\ABC\Your\1\a.txt
d:\ABC\Your\1\b.txt
d:\ABC\Y.txt
d:\ABC\X.txt
d:\ABC\Your\b.txt
d:\ABC\Your\a.txt
d:\ABC\Your
d:\ABC\My\X.txt
d:\ABC\My\Y.txt
d:\ABC\My\b\b.txt
d:\ABC\My\b\a.txt
d:\ABC\My\a\a.txt
d:\ABC\My\a\b.txt
d:\ABC\My
d:\ABC\MY\a
d:\ABC\My\b
d:\ABC\Your\1\a.txt
d:\ABC\Your\1\b.txt
d:\ABC\Your\1很明显是一树形结构的字符串描述,但是它不是有序排放的。如何使用一种算法使它能像资源管理器一样的排序。使结果序列为d:\ABC
d:\ABC\X.txt
d:\ABC\Y.txt
d:\ABC\My
d:\ABC\My\X.txt
d:\ABC\My\Y.txt
d:\ABC\MY\a
d:\ABC\My\a\a.txt
d:\ABC\My\a\b.txt
d:\ABC\My\b
d:\ABC\My\b\a.txt
d:\ABC\My\b\b.txt
d:\ABC\Your
d:\ABC\Your\a.txt
d:\ABC\Your\b.txt
d:\ABC\Your\1
d:\ABC\Your\1\a.txt
d:\ABC\Your\1\b.txt
@"d:\ABC",
@"d:\ABC\Y.txt",
@"d:\ABC\X.txt",
@"d:\ABC\Your\b.txt",
@"d:\ABC\Your\a.txt",
@"d:\ABC\Your",
@"d:\ABC\My\X.txt",
@"d:\ABC\My\Y.txt",
@"d:\ABC\My\b\b.txt",
@"d:\ABC\My\b\a.txt",
@"d:\ABC\My\a\a.txt",
@"d:\ABC\My\a\b.txt",
@"d:\ABC\My",
@"d:\ABC\MY\a",
@"d:\ABC\My\b",
@"d:\ABC\Your\1\a.txt",
@"d:\ABC\Your\1\b.txt",
@"d:\ABC\Your\1"};List<string> list = new List<string>();
list.AddRange(paths);
list.Sort();
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
则使用ArrayList如下:
string[] paths = new string[] {
@"d:\ABC",
@"d:\ABC\Y.txt",
@"d:\ABC\X.txt",
@"d:\ABC\Your\b.txt",
@"d:\ABC\Your\a.txt",
@"d:\ABC\Your",
@"d:\ABC\My\X.txt",
@"d:\ABC\My\Y.txt",
@"d:\ABC\My\b\b.txt",
@"d:\ABC\My\b\a.txt",
@"d:\ABC\My\a\a.txt",
@"d:\ABC\My\a\b.txt",
@"d:\ABC\My",
@"d:\ABC\MY\a",
@"d:\ABC\My\b",
@"d:\ABC\Your\1\a.txt",
@"d:\ABC\Your\1\b.txt",
@"d:\ABC\Your\1"};ArrayList _list = new ArrayList();
_list.AddRange(paths);
_list.Sort();
for (int i = 0; i < _list.Count; i++)
{
Console.WriteLine(_list[i]);
}
那它的Sort是怎么排的呢?
那有没有算法进行字符串分析的,像冒泡排序的实现体之类的?
{
value
字节点集合
}
1、首先将字符串组织成数结构;
2、排列没一层节点
3、遍历节点