回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个密码,它可以打印哈夫曼树。这一部分:</p>
<pre><code>while len(numArr) > 1:
numArr = [numArr[0] + numArr[1]] + numArr[2:]
numArr = sorted(numArr)
valHold = numArr[0] * 8
print(numArr)
</code></pre>
<p>不要介意我用它来计算输入字符串的未压缩位的<code>valHold</code>变量。你知道吗</p>
<p>假设我有<code>1,1,1,2,3,4</code>作为list <code>numArr</code>的元素(元素来自一个计数器,并传输到<code>letter_ar</code>r和numArr以将两者分开)。你知道吗</p>
<p>我只能这样打印:</p>
<pre><code>1,1,1,1,2,3,4
1,1,2,2,3,4
2,2,2,3,4
2,3,4,4
4,4,5
5,8
13
</code></pre>
<p>有没有其他方法可以打印出来?它看起来更像一棵树?像这样:</p>
<pre><code>13
5,8
4,4,5
2,3,4,4
2,2,2,3,4
1,1,2,2,3,4
1,1,1,1,2,3,4
</code></pre>
<p>如果你能教我如何用缩进打印会更好:</p>
<pre><code> 13
5,8
4,4,5
2,3,4,4
2,2,2,3,4
1,1,2,2,3,4
1,1,1,1,2,3,4
</code></pre>
<p>请注意,<code>numArr</code>列表的元素不是预定义的。它基于用户在程序中输入的内容。你知道吗</p>