比如集合A{a,b,c,d} 我是想这样构造的, 由第一个元素开始遍历到最后一个元素。
第一轮:a
第二轮:ab b
第三轮:ac abc bc c
第四轮:ad,abd,bd,acd,abcd,bcd,cd
以此类推
每取出一个元素就把该元素赋值到前面已经构造好的元素中。 大概就是这样。
求大神帮我实现这一程序
大神,大神。
http://bbs.csdn.net/topics/390550326
C语言版本请先采纳再写给你,或者自己按照我的C#的思路改写。
我不想切换环境,这是我用C#实现的,但基本是差不多的,应该没多大改动,代码如下:
public class traverse
{
public static void traversetype(T[] array)
{
List listchar = new List();
for (int i = 0; i < array.Length; i++)
{
List listtemp = new List();
if (listchar.Count > 0)
{
foreach (string c in listchar)
{
string temp = c + array[i].ToString();
listtemp.Add(temp);
}
}
if (i != array.Length - 1)
listtemp.Add(array[i].ToString());
foreach (string temp in listtemp)
{
listchar.Add(temp);
}
Console.WriteLine();
int j = i + 1;
Console.WriteLine("第{0}轮:\r\n", j);
AlgorithmHelper.PrintList(listtemp);
}
}
}
运行结果如图: