示例#1
0
 private void yhdistaKeot(Binomikeko b) {
   BinomiMerge(b);
   if (this.head == null) {
     return;
   }
   BinomiNode prevX = null;
   BinomiNode x = this.head;
   BinomiNode nextX = x.getSisar();
   while (nextX != null) {
     if (x.getAste() != nextX.getAste()
         || (nextX.getSisar() != null && nextX.getSisar().getAste() == x.getAste())) {
       prevX = x;
       x = nextX;
     } else if (x.getArvo() <= nextX.getArvo()) { // x:n ja nextx:n asteet samat
       x.setSisar(nextX.getSisar());
       nextX.Yhdista(x);
     } else {
       if (prevX == null) {
         this.head = nextX;
       } else {
         prevX.setSisar(nextX);
       }
       x.Yhdista(nextX);
       x = nextX;
     }
     nextX = x.getSisar();
   }
 }