2. Modify the method in Question 1 so that the item with the highest key is not only returned by the method, but also removed from the array. Call the method delete() Sample run: Array elements: 77 99 44 55 22 88 11 0 66 33 Highest Key: 99 Array elements: 77 44 55 22 88 11 0 66 33
the code:
class HighArray {
private long[] a;
private int nElems;
public HighArray(int max) {
a = new long[max];
nElems = 0;
}
public void insert(long value) {
a[nElems] = value;
nElems++;
}
public boolean find(long searchKey) {
int j;
for (j = 0; j < nElems; j++)
if (a[j] == searchKey)
break;
if (j == nElems)
return false;
else
return true;
}
public long getMax() {
if (nElems == 0)
return 01;
else {
long max = a[0];
for (int i = 1; i < nElems; i++) {
if (a[i] > max)
max = a[i];
}
return max;
}
}
public boolean delete(long value) {
int j;
for (j = 0; j < nElems; j++)
if (value == a[j])
break;
if (j == nElems)
return false;
else {
for (int k = j; k < nElems; k++)
a[k] = a[k + 1];
nElems--;
return true;
}
}
public void display() {
for (int j = 0; j < nElems; j++)
System.out.print(a[j] + " ");
System.out.println("");
}
}
public class HighArrayApp {
public static void main(String[] args) {
int maxSize = 100;
HighArray arr;
arr = new HighArray(maxSize);
System.out.println("Maximum value in the array is: " + arr.getMax());
arr.insert(77);
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
arr.display();
System.out.println("Maximum value in the array is: " + arr.getMax());
int searchKey = 35;
if( arr.find(searchKey) )
System.out.println("Found " + searchKey);
else
System.out.println("Can’t find " + searchKey);
arr.delete(00);
arr.delete(55);
arr.delete(99);
arr.display();
System.out.println("Maximum value in the array is: " + arr.getMax());
}
}
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 4 images