|
|
1
2
如果有
那么,让我们来看看:
更新: 正如您所说,定位足以明确地确定连接,但您仍然需要做一些自下而上的工作来实现这一点,所以我可能仍然会在网格构建过程中执行“标记”步骤。 我有点认为印刷是微不足道的,足以掩盖,但:
如果您先生成直线版本,然后在字符数组中进行一些替换,那么将其转换为打印对角线可能是最简单的方法——否则,您可能会遇到在不同列中呈现长垂直分支的情况,而不是在源列中呈现长垂直分支的情况。 在某些时候,我可能会尝试将它放入代码中,但它可能不会是今天——要做的事情! |
|
|
2
1
看起来是个有趣的问题,如果我有更多的时间,我很乐意尝试一下。 我可能会采用以下方法:
您必须在正在打印的wich行上保留一个全局变量。每次递归调用都会增加这个变量。 编辑:好吧,忍不住写一些未经测试的伪代码,希望它能工作:
|
|
|
3
1
如果从每个级别的标签宽度开始(不包括
使每个级别的最大标签宽度不为零,并用一个等距
给出每个节点的行号。 然后根据级别的子级之间的最大行数调整级别位置。
为a0至g1增加2至1级
使用
[a0]---------[b3]-------[c5]------[d8]
\ \ `----------[e9]
\ `-----[f5]
`[g1]--------[h4]------[i6]
\ `--------------------[j10]
`[k3]
|
|
|
4
1
下面是完全功能化的C代码,可以完全满足您的需要。它是如何做到的:
该算法确保每个级别仅在前一个级别结束后开始。对于短名称,这可能是个不错的选择,但对于长名称,这可能不应该强制执行。
编辑 :示例树的渲染与渲染完全相同:
|
|
|
5
0
如果不是搜索整个树,您可能需要执行深度优先搜索,以便正确地调整其大小,以便沿着2个维度进行输出。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |