自己稍微改了一下,但是还不够正确和简洁,希望大神可以帮忙改一下List>arrayStir=newArrayList>()//创建集合存节点的值fori←0topdoList
自己稍微改了一下,但是还不够正确和简洁,希望大神可以帮忙改一下
List> arrayStir = new ArrayList>()//创建集合存节点的值
for i←0 to p do
List list = new ArrayList()//创建链表集合
forj←0 to q do
if j > i do break//内循环结束
Stirling2 node = new Stirling2()//对象node存左右节点的值
node.init(i + 1, j + 1)//调用init方法对左右节点赋值
if j > 0 and i > j do//当前节点不是叶子节点
node.setleftchild(arrayStir.get(i - 1).get(j - 1))
node.setrightchildren(arrayStir.get(i - 1).get(j))
end if
node.re_set_cur_child()//用来判断当前节点是否为叶子节点
list.add(node)//将node存入链表list
end for
arrayStir.add(list)//将存了node的list链表存入arrayStir链表
end for
List fun = new ArrayList()//创建list集合和fun对象
PolypartitionFunctions funs_all = new PolypartitionFunctions(p,q,arrayStir.get(p-1))//调用划分函数,传递初始p,q的值
do while ret=false
boolean ret = funs_all.nextpartitionFunction(fun)
for i←0 to fun.size() do
output(fun.get(i))
end while
展开