水平列印樹,選擇右中左遍歷的原因。右樹在根節點的上面,左樹在根節點的下面,按照從上到下的順序列印就是右中左的遍歷方式。
def
printtree
(root, depth=0)
: s =
''if
not root:
return s
sright = printtree2(root.right, depth+1)
print
('\033[5;30m|\033[0m '
*depth+
"\033[1;31m"
+root.val+
"\033[0m"
) sleft = printtree2(root.left, depth+1)
# s = sright + '| '*depth + root.val + '\n' + sleft
# return s
列印效果
層序遍歷可以滿足縱向一行一行列印的需求,按照中序遍歷列印順序,給每個節點新增index屬性,控制離最左端的距離。
def
printtree
(root):if
not root:
return
index =-1
# 中序遍歷樹,按列印順序給節點新增index屬性
stack =
head = root
while root or stack:
while root:
root = root.left
finish = stack.pop(
) index +=
1 finish.index = index
root = finish.right
maxindex = index
# 層序遍歷
queue = deque(
) symbol =
' + '
while queue:
n =len(queue)
s ="" lastindex =-1
for i in
range
(n):
finish = queue.popleft(
) s += symbol *
(finish.index-lastindex-1)
+" \033[1;31m"
+finish.val+
"\033[0m "
lastindex = finish.index
if finish.left:
if finish.right:
s += symbol *
(maxindex-lastindex)
print
(s)
列印效果
自定義橫向或縱向列印
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
C 將縱向內容列印到橫向紙張上(列印旋轉)
遇到了乙個列印問題,設計了一張標籤,要列印的內容是縱向的,要列印在 寬 高 8cm 10cm 的標籤紙上,結果在設計完後發現客戶購買的是 寬 高 10cm 8cm 的標籤紙,於是就嘗試使用 e.pagesettings.landscape true 來進行橫向列印,結果發現沒用的,內容還是從上到下列...
vue 橫縱向列印
用單選框來切換列印時的方向 footer class dialog footer isportrait label 1 change handleradiochange 縱向 isportrait label 0 change handleradiochange 橫向 通過css可以設定列印的橫縱向...