@@ -179,11 +179,17 @@ def nodeToMat(node: BinaryNode, depth=-1, valueFillChar=None, gapFillChar=None,
179179 for i , index in enumerate (valueIndexes ):
180180 mat [level ][index ] = [center ("/" , unitSize = unitSize , fillChar = " " ), center ("\\ " , unitSize = unitSize , fillChar = " " )][i % 2 ]
181181
182+ # Fill gaps between each pair with gapFillChar
183+ for i in range (0 , len (valueIndexes ), 2 ):
184+ if i + 1 < len (valueIndexes ):
185+ # Fill columns between valueIndexes[i] and valueIndexes[i+1]
186+ for col in range (valueIndexes [i ] + 1 , valueIndexes [i + 1 ]):
187+ mat [level ][col ] = center ("" , unitSize = unitSize , fillChar = gapFillChar )
188+
182189 # Calculate parent positions (midpoints between child pairs)
183190 next = []
184191 for i in range (0 , len (valueIndexes ) - 1 , 2 ):
185192 next .append ((valueIndexes [i ] + valueIndexes [i + 1 ]) // 2 )
186- prev = valueIndexes
187193 valueIndexes = next
188194 continue
189195
@@ -195,14 +201,6 @@ def nodeToMat(node: BinaryNode, depth=-1, valueFillChar=None, gapFillChar=None,
195201 for i , index in enumerate (valueIndexes ):
196202 if codes [i ] in tree :
197203 mat [level ][index ] = tree [codes [i ]]
198-
199- # Fill gaps between pairs for this level
200- if len (valueIndexes ) > 1 :
201- for i in range (0 , len (valueIndexes ), 2 ):
202- if i + 1 < len (valueIndexes ):
203- # Fill columns between valueIndexes[i] and valueIndexes[i+1]
204- for col in range (valueIndexes [i ] + 1 , valueIndexes [i + 1 ]):
205- mat [level ][col ] = center ("" , unitSize = unitSize , fillChar = gapFillChar )
206204
207205 # Remove empty leading columns if requested
208206 if removeEmpty :
0 commit comments