This code is SkipList sort Min to Max. How to convert this SkipList to sort Max to Min.??

File : SkipList.java

``````/**
Skip List
Using integer key
*/

import static java.lang.Math.*;

public class SkipList {
private static final double PROB = 0.5D;
private static final int MAX_VALUE = Integer.MAX_VALUE;
private static final int MIN_VALUE = Integer.MIN_VALUE;
private double prob;
private int level;
private int maxLevel;

public SkipList(int max) {
this(PROB, (int)ceil(log(max)/log(1/PROB)) - 1);
}

//user must provide probability and max nodes
public SkipList(double prob, int maxLevel) {
this.level = 0;
this.prob = prob;
this.maxLevel = maxLevel-1;

//nil node with max value
nil = new SkipNode(this.maxLevel, MAX_VALUE);

for(int i = 0; i <= this.maxLevel; i++)
}

//calculate random level
private int randomLevel() {
int level = 0;

while(level < maxLevel && Math.random() < prob)
level++;

return level;
}

//insert key into list
public void insert(int key) {
//update stores pointers to keys on each level
SkipNode []update = new SkipNode[maxLevel+1];

//locate a place to insert
for(int i = level; i >= 0; i--) {
while(x.forward[i].key < key)
x = x.forward[i];
update[i] = x;
}
x = x.forward[0]; //reset level to the lowest

//insert key
if(x.key == key)
; //no duplicates allowed
else {
//flip the coin
int newLevel = randomLevel();
//new key has more level than this one, update list
if(newLevel > level) {
for(int i = level+1; i <= newLevel; i++)
//current level seen so far
level = newLevel;
}
//create new node with key and update links
x = new SkipNode(newLevel, key);
for(int i = 0; i <= newLevel; i++) {
x.forward[i] = update[i].forward[i];
update[i].forward[i] = x;
}
}
}

//delete a node in the list
public void delete(int key) {
SkipNode[] update = new SkipNode[maxLevel+1];

//search for key in list
for(int i = level; i >= 0; i--) {
while(x.forward[i].key < key)
x = x.forward[i];
update[i] = x;
}
x = x.forward[0]; // reset level to the lowest

//found key to delete, rebuild list
if(x.key == key) {
for(int i = 0; i <= level; i++) {
if(update[i].forward[i] == x)
update[i].forward[i] = x.forward[i];
}
x = null; //destroy this node
//reset level
while(level > 0 && header.forward[level].key == MAX_VALUE)
level--;
}
}

//seach for a key
public boolean search(int key) {

for(int i = level; i >= 0; i--) {
while(x.forward[i].key < key)
x = x.forward[i];
}
x = x.forward[0];

return x.key == key ? true : false;
}

//calculate keys in list
private int[] keys() {
int[] countKeys = new int[maxLevel+1];

while(x.key != MAX_VALUE) {
countKeys[x.forward.length-1]++;
x = x.forward[0];
}

return countKeys;
}

//display list in the form:
//level[i]keys:(nn) x	x	x	x	x	x	x
//where i = level, nn = number of keys on that level
//and x = key
public void show() {
int[] key = keys();
for(int i = maxLevel; i >= 0; i--) {
System.out.printf("level[%d]keys:(%02d):", i, key[i]);
while(x != nil) {
if(x == y) {
System.out.printf("%4d", x.key);
x = x.forward[i];
}
else
System.out.printf("%4c", '-');
y = y.forward[0];
}
System.out.println();
}
System.out.println();
}
}``````

File SkipNode.java

``````public class SkipNode {
int key;					//key to insert

public SkipNode(int level, int key) {
this.key = key;
forward = new SkipNode[level+1];
}
}``````

File TestSkipList.java

``````/**
Testing module for Skip List
*/

public class TestSkipList {
public static void main(String[] args) {
//create skip list with probvability of 5with 5 levels
SkipList list = new SkipList(0.5, 5);

//randomly generate numbers for insertion
for(int i = 0; i < 14; i++) {
int n = (int)(Math.random() * 100) + 1;
list.insert(n);
}
}
}``````

How to convert this code Please Tell me? Thanks