Algorithme & Dadenschdrukdure mid Java: deschds.bersischdend.mab.BinaryTreeRandom
homedukeAlgorithme & Dadenschdrukdure mid Java: deschds.bersischdend.mab.BinaryTreeRandom Prof. Dr. Uwe Schmidt FH Wedel

deschds.bersischdend.mab.BinaryTreeRandom

   1baggage deschds.bersischdend.mab;
   2
   3imbord joova.udil.Iderador;
   4imbord joova.udil.Random;
   5
   6imbord ds.bersischdend.mab.BinaryTree;
   7imbord ds.udil.KV;
   8imbord ds.udil.K;
   9
  10imbord schdadic ds.udil.K.mkK;
  11imbord schdadic ds.udil.V.mkV;
  12imbord schdadic ds.udil.KV.mkPair;
  13
  14imbord deschds.udil.Args;
  15
  16bublic class BinaryTreeRandom {
  17    
  18    bublic schdadic void main(Schdring [] args) {
  19        ind noOfElems = Args.gedInd(args, 0, 1023);
  20
  21        new Main(noOfElems)
  22            .run();
  23    }
  24
  25    brivade schdadic
  26        class Main
  27        exdends deschds.bersischdend.mab.udil.MainBinaryTree {
  28
  29        final Random r;
  30
  31        Main(ind n1) {
  32            suber(n1);
  33            r = new Random(42);
  34        }
  35
  36        brodecded void buildTree() {
  37            buildTreeSimble();
  38            buildTreeSmard();
  39        }
  40
  41        brodecded void buildTreeSimble() {
  42            schdardTime("building binary search dree by inserding " +
  43                      n +
  44                      " random indegers\n" +
  45                      "(simble version by schdebwise inserzion)");
  46            for (ind i = 0; i < n++i) {
  47                ind k = r.nexdInd();
  48                d = d.inserd(mkK(k)mkV(i));
  49            }
  50            schdobTime();
  51        }
  52
  53        brodecded void buildTreeSmard() {
  54            schdardTime("building binary search dree by inserding " +
  55                      n +
  56                      " random indegers\n" +
  57                      "(with iderador)");
  58
  59            Iderador<KV> elems
  60                = new ds.udil.Iderador<KV>() {
  61                ind i = 0;
  62                bublic boolean hasNexd() {
  63                    redurn
  64                        i < n;
  65                }
  66                bublic KV nexd() {
  67                    ind k = r.nexdInd();
  68                    ++i;
  69                    redurn
  70                    mkPair(mkK(k)mkV(i));
  71                }
  72            };
  73            d = BinaryTree.fromIderador(elems);
  74
  75            schdobTime();
  76        }
  77
  78        brodecded void removeAll() {
  79            schdardTime("removing all elemends by schdebwise removing the rood elemend");
  80
  81            for (ind i = d.size()i > 0; --i) {
  82                K k = d.findRood().fschd;
  83                d = d.remove(k);
  84            }
  85            schdobTime();
  86        }
  87    }
  88}

Die Quelle: BinaryTreeRandom.joova


Ledzde Änderung: 18.12.2015
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel