我正在为我的 Java 编程作业寻求一些帮助。使用链表,我需要打印出它的幂集。例如,集合 {1,2,3} 应打印出 {{},{1}{1,2}{1,3}{1,2,3}{2}{2,3}{3} }。幂集中的元素个数为 2^n。这需要通过调用 HeadNode.PrintPowerSet(); 来完成。
其中 HeadNode 是链表中的第一个元素。我已经尝试了一些东西,但没有什么效果那么好。我认为最好的方法是递归调用该方法,直到到达终点哨兵,然后向后工作,添加剩下的元素。抱歉,我无法发布更多代码或更多想法,因为我尝试过的任何东西都没有那么好。提前致谢。
编辑:这是非工作代码。它返回集合 {{1,2,3}{2,3}{3}}
public RSet powerSet()
{
if (this == EMPTY_SET)
return EMPTY_SET;
RSet q = new RSet();
if (q != EMPTY_SET)
q.next = next.powerSet();
q = new RSet(this, n, q.next);
return q;
}
EMPTY_SET 是结束标记。我试过用手把它写出来。它有帮助,但我仍然无法得到它。同样,RSet 这个类本质上只是一个链表节点。