Potrzebuje do programiku dołożyć następujące możliwości
isOrder() - zwraca true jeśli tablica uporządkowana
getMax() - zwraca wartość elementu maksymalnego
delMax() - usuwa element maksymalny w tablicy
delDups() - usuwa duplikaty
getMin() - zwraca wartość elementu minimalnego
delMin() - usuwa element minimalny w tablicy
kod mam następujący:
// Plik. Array_1.java
// -----------------------------------------------------------
import java.io.*;
class Array
{
private int size;
private long[] a; // referencja do tablicy
private int nElems; // liczba elementów tablicy
//-----------------------------------------------------------
public Array(int max) // konstruktor
{
size = max;
a = new long[max]; // tworzymy tablicę
nElems = 0; // na razie brak elementów
}
//-----------------------------------------------------------
public boolean find(long searchKey)
{ // szukanie określonej wartości
int j;
for(j=0; j<nElems; j++) // dla każdego elementu...
if(a[j] == searchKey) // czy znaleziono?
break; // tak, wyjście z pętli
if(j == nElems) // doszliśmy do końca?
return false; // tak, elementu nie znaleziono
else
return true; // nie, element znaleziony
} // end find()
//-----------------------------------------------------------
public void insert(long value) // wstawienie elementu do tablicy
{
if(nElems < size){
a[nElems] = value; // wstawiamy
nElems++; } // zwiększamy licznik elementów
else System.out.println("Brak miejsca");
}
//-----------------------------------------------------------
public boolean delete(long value) // usunięcie elementu z tablicy
{
int j;
for(j=0; j<nElems; j++) // szukamy elementu
if( value == a[j] )
break;
if(j==nElems) // nie znaleźliśmy
return false;
else // znaleźliśmy
{
nElems--;
for(int k=j; k<nElems; k++) // przesuwamy pozostałe elementy
a[k] = a[k+1];
// zmniejszamy licznik elementów
return true;
}
} // koniec delete()
//-----------------------------------------------------------
public void display() // wypisuje zawartość tablicy
{
for(int j=0; j<nElems; j++) // dla każdego elementu...
System.out.print(a[j] + " "); // ...wypisujemy jego wartość
System.out.println("");
}
//-----------------------------------------------------------
} // koniec klasy HighArray
////////////////////////////////////////////////////////////////
class ArrayApp
{
//--------------------------------------------------------
public static String getString()
{
String s;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try{
s = br.readLine();
return s ;
}
catch(IOException e) {
System.out.println("Blad podczas odczytu danych");
}
return "0" ;
}
//--------------------------------------------------------
public static long getLong()
{
long lnum;
String s =getString();
try{
lnum =Long.parseLong(s);
return lnum;
}
catch(NumberFormatException e){
System.out.println("Blad podczas konwersji liczby"); }
return 0;
}
//--------------------------------------------------------
public static void menu()
{ System.out.println("--------------------" );
System.out.println("Operacje na tablicy " );
System.out.println("--------------------" );
System.out.println("1. Dodaj element " );
System.out.println("2. Wyszukaj element " );
System.out.println("3. Usun element " );
System.out.println("4. Wypisz tablice " );
System.out.println("0. Koniec programu " );
System.out.println("--------------------" );
System.out.print("Wybierz operacje: " );
}
//--------------------------------------------------------
public static void main(String[] args)
{
int maxSize = 100; // rozmiar tablicy
Array arr; // referencja do tablicy
arr = new Array(maxSize); // tworzymy tablicę
int op;
long el, searchKey;
do{
menu();
op = (int) getLong();
switch (op)
{
case 1: {//Dodaj element
System.out.print("Podaj element: ") ;
el= getLong();
arr.insert(el);
arr.display(); // wypisujemy elementy
break;
}
case 2:{//Wyszukaj element
System.out.print("Podaj szukany element: " );
searchKey =getLong();
// szukamy zadanego elementu
if( arr.find(searchKey) )
System.out.println("Znaleziono " + searchKey);
else
System.out.println("Nie znaleziono " + searchKey);
break;
}
case 3:{//Usun element
System.out.print("Podaj element do usunięcia: " );
el=getLong();
arr.delete(el);
arr.display();
break;
}
case 4: {//Wypisz tablice
arr.display();
break;
}
case 0:{
System.out.println("Bye" );
break;
}
default:
System.out.println("Nie ma takiej opcji! " );
}
}while (op!=0);
} // koniec main()
} // koniec klasy ArrayApp
///////////////////////////////////////////////////////////////////////
// Array_0.java
// uruchomienie programu: C>java ArrayApp
class Array
{
private int size;
private long[] a; // referencja do tablicy
private int nElems; // liczba elementów tablicy
//-----------------------------------------------------------
public Array(int max) // konstruktor
{
size = max;
a = new long[max]; // tworzymy tablicę
nElems = 0; // na razie brak elementów
}
//-----------------------------------------------------------
public boolean find(long searchKey)
{ // szukanie określonej wartości
int j;
for(j=0; j<nElems; j++) // dla każdego elementu...
if(a[j] == searchKey) // czy znaleziono?
break; // tak, wyjście z pętli
if(j == nElems) // doszliśmy do końca?
return false; // tak, elementu nie znaleziono
else
return true; // nie, element znaleziony
} // end find()
//-----------------------------------------------------------
public void insert(long value) // wstawienie elementu do tablicy
{
if(nElems < size){
a[nElems] = value; // wstawiamy
nElems++; } // zwiększamy licznik elementów
else System.out.println("Brak miejsca");
}
//-----------------------------------------------------------
public boolean delete(long value) // usunięcie elementu z tablicy
{
int j;
for(j=0; j<nElems; j++) // szukamy elementu
if( value == a[j] )
break;
if(j==nElems) // nie znaleźliśmy
return false;
else // znaleźliśmy
{
nElems--;
for(int k=j; k<nElems; k++) // przesuwamy pozostałe elementy
a[k] = a[k+1];
// zmniejszamy licznik elementów
return true;
}
} // koniec delete()
//-----------------------------------------------------------
public void display() // wypisuje zawartość tablicy
{
for(int j=0; j<nElems; j++) // dla każdego elementu...
System.out.print(a[j] + " "); // ...wypisujemy jego wartość
System.out.println("");
}
//-----------------------------------------------------------
} // koniec klasy HighArray
class ArrayApp
{
public static void main(String[] args)
{
int maxSize = 100; // rozmiar tablicy
Array arr; // referencja do tablicy
arr = new Array(maxSize); // tworzymy tablicę
arr.insert(77); // wstawiamy 10 elementów
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(); // wypisujemy elementy
int searchKey = 35; // szukamy elementu 35
if( arr.find(searchKey) )
System.out.println("Znaleziono " + searchKey);
else
System.out.println("Nie znaleziono " + searchKey);
arr.delete(00); // usuwamy 3 elementy
arr.delete(55);
arr.delete(99);
arr.display(); // wypisujemy elementy ponownie
} // koniec main()
} // koniec klasy ArrayApp
umiałby ktoś pomóc ?
wyszukiwanie, dodawanie usuwanie rozumiem, jednak ta część zadania jest dla mnie za trudna