0
所以我打印一個B級的樹。一個節點最多有3個密鑰和最多4個子節點,它是典型的2-3-4樹。除了當我添加「2 5 8 1 3 6 9 7 11 12 10 4」之外,代碼對大多數內容都能正常工作。具體來說,問題是我的隊列中的推(2 5)和(11)然後計數(2 5)個孩子。之後,我去流行它的孩子,但是(11)阻礙了它並將其擰緊。使用bfs打印樹。快速修復所需
void BFS(TwoThreeFourTree tree, Node start)
{
ArrayList<String> level = new ArrayList<String>();
int levCount = 0;
LinkedList<Node> queue = new LinkedList<Node>();
queue.add(start);
level.add("(" + keys(start) + ")");
while (!queue.isEmpty())
{
Node vertix = queue.remove();
for (Node child : vertix.child)
{
if (child == null) break;
queue.add(child);
levCount++;
}
String allChild = "";
Node temp[] = new Node[levCount];
while (levCount > 0)
{
temp[levCount - 1] = queue.remove();
allChild = allChild.concat("(" + keys(temp[levCount - 1]) + ")");
levCount--;
}
for (Node child : temp)
queue.addFirst(child);
if (levCount == 0 && allChild != "")
level.add(allChild);
}
for (String stuff : level)
{
System.out.println(stuff);
}
System.out.println("----------------------");
}
耶!免費閱讀someones無證代碼!時間喝一杯! – regality