code: def topology(self):
          
  
          left = self.items[0]
          right = self.items[1]
  
          if isinstance(left, Cluster):
              first = left.topology()
          else:
              first = left
  
          if isinstance(right, Cluster):
              second = right.topology()
          else:
              second = right
  
          return first, second
docs: Returns the structure (topology) of the cluster as tuples.
  
          Output from cl.data::
  
                  [<Cluster@0.833333333333(['CVS',
                   <Cluster@0.818181818182(['34.xls',
                   <Cluster@0.789473684211([<Cluster@0.555555555556(['0.txt',
                   <Cluster@0.181818181818(['ChangeLog', 'ChangeLog.txt'])>])>,
                   <Cluster@0.684210526316(['20060730.py',
                   <Cluster@0.684210526316(['.cvsignore',
                   <Cluster@0.647058823529(['About.py', <Cluster@0.625(['.idlerc',
                   '.pylint.d'])>])>])>])>])>])>])>]
  
          Corresponding output from cl.topo()::
  
                  ('CVS', ('34.xls', (('0.txt', ('ChangeLog', 'ChangeLog.txt')),
                  ('20060730.py', ('.cvsignore', ('About.py',
                  ('.idlerc', '.pylint.d')))))))