Member 13616463 Ответов: 1

Как напечатать ключи дерева B в древовидной манере ?


int k = 200 ; // defined in same class as the function print .

         public void print ( BNode n )      
        {
        for ( int k = temp ; k>=0 ; k=k-30 )
        {
            System.out.print("     ");
        }
        
        for ( int i = 0 ; i < n.count ; i++ ) 
        {
            System.out.print ( n.getValue(i) + " " ) ;    
        }
        
        
        
        if ( !n.leaf )  
        {
               System.out.println ("") ;
            
            for ( int j = 0; j <= n.count ; j++ )
            {				  
                temp = temp -- ;
               
                if ( n.getChild(j) != null ) 
                {			         
                 
                    print( n.getChild(j) ) ;     
            
                }
              
            }
            
        }
    
    }


Я не могу придумать способ напечатать Ключевые значения в виде дерева . Я хочу , чтобы корневой узел был посередине, дочерние узлы начинались со следующей строки и оставляли большинство дочерних слева от корня и так далее .

Пожалуйста помочь .

Что я уже пробовал:

Реализован код на языке Java .

Richard MacCutchan

Сначала вам нужно будет построить список всех узлов, вычисляя их относительное положение в дереве. Как только у вас есть эта информация, вы можете рассчитать, где на вашей распечатке вам нужно разместить каждый из них на древовидной диаграмме.

1 Ответов

Рейтинг:
1

Patrice T

B-дерево-это структура, в основном узел, содержащий значение и 2 указателя на 2 дочерних узла. Фокус в том, что каждое дочернее дерево само является B-деревом.
в этом Б-дереве

  1
 2
  3
4
  5
 6
  7

 1
2
 3

это B-дерево само по себе с одним только отступом.
B-дерево может иметь неограниченную глубину, поэтому наиболее очевидным решением является использование рекурсии.
вы просто должны следить за уровнем отступа.