Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

To the HighArray class in the highArray.java program (Listing 2.3), add a method

ID: 3861945 • Letter: T

Question

To the HighArray class in the highArray.java program (Listing 2.3), add a method called getMax() that returns the value of the highest key in the array, or –1 if the array is empty. Add some code in main() to exercise this method. Yo u can assume all the keys are positive numbers.

Listing 2.3

//highArray.java
class HighArray
{
private long[] a;                 // ref to array a
private int nElems;               // number of data items

public HighArray(int max)         // constructor
{
a = new long[max];                 // create the array
nElems = 0;                        // no items yet
}

public boolean find(long searchKey)
{                              // find specified value
int j;
for(j=0; j<nElems; j++)            // for each element,
if(a[j] == searchKey)           // found item?
break;                       // exit loop before end
if(j == nElems)                    // gone to end?
return false;                   // yes, can’t find it
else
return true;                    // no, found it
} // end find()

public void insert(long value)    // put element into array
{
a[nElems] = value;             // insert it
nElems++;                      // increment size
}

public boolean delete(long value)
{
int j;
for(j=0; j<nElems; j++)        // look for it
if( value == a[j] )
break;
if(j==nElems)                  // can’t find it
return false;
else                           // found it
{
for(int k=j; k<nElems; k++) // move higher ones down
a[k] = a[k+1];
nElems--;                   // decrement size
return true;
}
}
public void display()             // displays array contents
{
for(int j=0; j<nElems; j++)       // for each element,
System.out.print(a[j] + ""); // display it
System.out.println("");
}
}
class HighArrayApp
{
public static void main(String[] args)

{
int maxSize = 100;            // array size
HighArray arr;                // reference to array
arr = new HighArray(maxSize); // create the array
arr.insert(77);               // insert 10 items
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();                // display items
int searchKey = 35;           // search for item
if( arr.find(searchKey) )
System.out.println("Found " + searchKey);
else
System.out.println("Can’t find " + searchKey);
arr.delete(00);               // delete 3 items
arr.delete(55);
arr.delete(99);
arr.display();                // display items again
} // end main()
} // end class HighArrayApp

Your help is very much appreciated. Thank you very much.

Explanation / Answer

class HighArray {
   private long[] a; // ref to array a
   private int nElems; // number of data items

   // -----------------------------------------------------------

   public HighArray(int max) // constructor
   {
       a = new long[max]; // create the array
       nElems = 0; // no items yet
   }

   // -----------------------------------------------------------
   public boolean find(long searchKey) { // find specified value
       int j;
       for (j = 0; j < nElems; j++)
           // for each element,
           if (a[j] == searchKey) // found item?

               break; // exit loop before end
       if (j == nElems) // gone to end?
           return false; // yes, can’t find it
       else
           return true; // no, found it
   } // end find()
       // -----------------------------------------------------------

   public void insert(long value) // put element into array
   {
       a[nElems] = value; // insert it
       nElems++; // increment size
   }

   // -----------------------------------------------------------
   public boolean delete(long value) {
       int j;
       for (j = 0; j < nElems; j++)
           // look for it
           if (value == a[j])
               break;
       if (j == nElems) // can’t find it
           return false;
       else // found it
       {
           for (int k = j; k < nElems; k++)
               // move higher ones down
               a[k] = a[k + 1];
           nElems--; // decrement size
           return true;
       }
   } // end delete()
       // -----------------------------------------------------------

   public void display() // displays array contents
   {
       for (int j = 0; j < nElems; j++)
           // for each element,
           System.out.print(a[j] + " "); // display it
       System.out.println(" ");
   }

   // -----------------------------------------------------------

   public long getMax() // get maximum value
   {

       if (nElems == 0)
           return -1;
       long lngMax = a[0];
       for (int j = 1; j < nElems; j++)
           if (lngMax < a[j])
               lngMax = a[j];
       return lngMax;
   }
   // -----------------------------------------------------------

} // end class HighArray



class HighArrayApp {
    public static void main(String[] args) {
        int maxSize = 100; // array size
        HighArray arr; // reference to array
        arr = new HighArray(maxSize); // create the array
        arr.insert(77); // insert 10 items
        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(); // display items
        int searchKey = 35; // search for item
        if (arr.find(searchKey))
            System.out.println("Found " + searchKey);
        else
            System.out.println("Can’t find " + searchKey);
        arr.delete(00); // delete 3 items
        arr.delete(55);
        arr.delete(99);
        arr.display(); // display items again
        System.out.println("The maximum is: " + arr.getMax());
    } // end main()
} // end class HighArrayApp

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote