@@ -115,15 +115,15 @@ protected virtual Node Put(Node x, TKey key, TValue value)
115115 /// </summary>
116116 /// <param name="key">需要查找的键。</param>
117117 /// <returns>找到的值,不存在则返回 <c>default(TValue)</c>。</returns>
118- public virtual TValue Get ( TKey key ) => Get ( root , key ) ;
118+ public virtual TValue Get ( TKey key ) => Get ( root , key ) . Value ;
119119
120120 /// <summary>
121- /// 递归查找 <paramref name="key"/> 所对应的值 。
121+ /// 递归查找 <paramref name="key"/> 所对应的结点 。
122122 /// </summary>
123123 /// <param name="x">要查找的根结点。</param>
124124 /// <param name="key">要查找的键。</param>
125- /// <returns>如果存在则返回对应的值 ,否则返回 <c>default(TValue)</c>。</returns>
126- protected virtual TValue Get ( Node x , TKey key )
125+ /// <returns>如果存在则返回对应的结点 ,否则返回 <c>default(TValue)</c>。</returns>
126+ protected virtual Node Get ( Node x , TKey key )
127127 {
128128 if ( key == null )
129129 throw new ArgumentNullException ( "calls get() with a null key" ) ;
@@ -135,7 +135,7 @@ protected virtual TValue Get(Node x, TKey key)
135135 else if ( cmp > 0 )
136136 return Get ( x . Right , key ) ;
137137 else
138- return x . Value ;
138+ return x ;
139139 }
140140
141141 /// <summary>
@@ -553,6 +553,34 @@ protected virtual Node DeleteMax(Node x)
553553 return x ;
554554 }
555555
556+ /// <summary>
557+ /// 按照层级顺序打印以 <paramref name="key"/> 为根的子树。
558+ /// </summary>
559+ /// <param name="key">作为根结点的键值。</param>
560+ public void PrintLevel ( TKey key )
561+ {
562+ PrintLevel ( Get ( root , key ) ) ;
563+ }
564+
565+ /// <summary>
566+ /// 按照层级顺序打印以 <paramref name="x"/> 为根的子树。
567+ /// </summary>
568+ /// <param name="x">根结点。</param>
569+ private void PrintLevel ( Node x )
570+ {
571+ var queue = new Queue < Node > ( ) ;
572+ queue . Enqueue ( x ) ;
573+ while ( queue . Count > 0 )
574+ {
575+ var node = queue . Dequeue ( ) ;
576+ if ( node . Left != null )
577+ queue . Enqueue ( node . Left ) ;
578+ if ( node . Right != null )
579+ queue . Enqueue ( node . Right ) ;
580+ Console . Write ( node . Key + ", " ) ;
581+ }
582+ }
583+
556584 /// <summary>
557585 /// 将二叉树按照树形输出。
558586 /// </summary>
0 commit comments