code: private void makeAtmBndQueues(int[] path, int[] seqAt, IBond[] bndAt) {
          int len = path.length;
          int i = (len - 1) / 2;
          int j = i + 1;
          int nSeqAt = 0;
          int nBndAt = 0;
          if (isOdd((path.length))) {
              seqAt[nSeqAt++] = path[i--];
              bndAt[nBndAt++] = bondMap.get(path[j], path[j - 1]);
          }
          bndAt[nBndAt++] = bondMap.get(path[i], path[i + 1]);
          while (i > 0 && j < len - 1) {
              seqAt[nSeqAt++] = path[i--];
              seqAt[nSeqAt++] = path[j++];
              bndAt[nBndAt++] = bondMap.get(path[i], path[i + 1]);
              bndAt[nBndAt++] = bondMap.get(path[j], path[j - 1]);
          }
      }
docs: Internal - makes atom (seq) and bond priority queues for resolving
  overlap. Only (acyclic - but not really) atoms and bonds in the shortest
  path between the two atoms can resolve an overlap. We create prioritised
  sequences of atoms/bonds where the more central in the shortest path.
  
  @param path  shortest path between atoms
  @param seqAt prioritised atoms, first atom is the middle of the path
  @param bndAt prioritised bonds, first bond is the middle of the path