Java Stack klase paplašina Vector klasi. Tas ļauj jums izveidot jaunus elementus, skatīt elementu kaudzē, atjaunināt elementu kaudzē un dzēst visus elementus no kaudzes. Apstrādā datus FILO secībā. Tas nozīmē, ka vienumus var pievienot vai noņemt tikai no kaudzes augšdaļas.

Stack datu struktūrai ir piecas galvenās metodes. Tomēr Java Stack klasei ir arī piekļuve vairāk nekā 40 citām metodēm, kuras tā pārmanto no Vector klases.

Stack izveide Java

Stack klase ir viens konstruktors kas ļauj izveidot tukšu kaudzi. Katram stekam ir tipa arguments, kas nosaka, kāda veida dati tiks saglabāti.

imports java.util. Kaudze;

publiskiklasēGalvenā{
publiskistatisksnederīgsgalvenais(String[] args){
// izveido steku
Kaudze Klienti = jauns Kaudze();
}
}

Iepriekš minētais kods izveido steka datu struktūru, ko sauc Klienti kas saglabā virknes vērtības.

Kaudzītes aizpildīšana

Viena no piecām Stack klases galvenajām metodēm ir push () metodi. Tas aizņem vienu vienumu, kuram ir tāds pats datu tips kā stekam, un nospiež šo vienumu uz skursteņa augšdaļu.

instagram viewer
// aizpildīt steku
Klienti.push("Jane Doe");
Customers.push ("Džons Doe");
Customers.push ("Patriks Viljamss");
Klienti.push("Pols Smits");
Customers.push ("Ēriks Rovs");
Klienti.push ("Ella Džounsa");
Klienti.push("Džesika Brauna");

Iepriekš minētais kods aizpilda klientu komplektu ar septiņiem priekšmetiem. Tas nospiež katru jauno vienumu uz kaudzes augšdaļu. Tātad vienums klientu kopas augšpusē ir Džesika Brauna. Un jūs varat to apstiprināt, izmantojot Stack palūrēt () metodi. The palūrēt () metode neprasa argumentus. Tas atgriež objektu kaudzes augšpusē, to nenoņemot.

// skatīt objektu kaudzes augšpusē
System.out.println (Customers.peek());

Iepriekš minētais kods atgriež konsolei šādu izvadi:

Džesika Brauna

Skatiet vienumus kaudzē

Steka datu struktūra ir diezgan ierobežojoša attiecībā uz to, kā tā ļauj mijiedarboties ar saviem datiem. Jums galvenokārt jāizmanto Stack, izmantojot tā augšējo vienumu. Tomēr, lai piekļūtu patvaļīgiem elementiem, varat izmantot arī metodes, kas mantotas no Vector klases. Šādas metodes ietver elementAt un removeElementAt.

Vienkāršākais veids, kā iegūt pārskatu par kaudzes saturu, ir to vienkārši izdrukāt. Nododiet Stack objektu System.out.println un Stack's toString() metode radīs jauku kopsavilkumu:

// skatīt visus kaudzes elementus
System.out.println (klienti);

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

[Džeina Do, Džons Dū, Patriks Viljamss, Pols Smits, Ēriks Rovs, Ella Džounsa, Džesika Brauna]

Preces pozīcijas meklēšana kaudzē

Ja zināt kādu vienumu kaudzē, varat noteikt tā indeksa pozīciju vai pozīciju attiecībā pret kaudzes augšdaļu. The indexOf() metode paņem vienumu kaudzē un atgriež tā indeksa pozīciju. Ņemiet vērā, ka kopa sāk indeksēt savus vienumus no nulles.

// atrast vienuma indeksa pozīciju
System.out.println (Customers.indexOf("Jane Doe"));

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

0

The Meklēt() metode ir viena no Stack klases galvenajām metodēm. Tas atgriež vienuma pozīciju attiecībā pret kaudzes augšdaļu, kur vienumam kaudzes augšpusē ir pirmā pozīcija.

System.out.println (Customers.search("Jane Doe"));

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

7

Ja jūs piegādājat Meklēt() vai indexOf() metodes ar vienumu, kas neatrodas kaudzē, tie atgriezīs negatīvu.

System.out.println (Customers.search("Elsa Doe"));
System.out.println (Customers.indexOf("Elsa Doe"));

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

-1
-1

Vienumu atjaunināšana kaudzē

Jūs varat manipulēt tikai ar vienumu, kas atrodas kaudzes augšpusē. Tātad, ja vēlaties atjaunināt elementu, kas neatrodas skursteņa augšdaļā, visi vienumi būs jāliek virs tā. The pop() metode ir viena no Stack galvenajām metodēm. The pop() metode neprasa argumentus. Tas noņem vienumu kaudzes augšpusē un atdod to atpakaļ.

// atjaunināt objektu
Klienti.pop();
Klienti.pop();
Klienti.push("Ella Džeimsa");
Klienti.push("Džesika Brauna");
System.out.println (klienti);

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

[Džeina Do, Džons Dū, Patriks Viljamss, Pols Smits, Ēriks Rovs, Ella Džeimsa, Džesika Brauna]

Kā redzat no izvades, kods atjaunina Ellas uzvārdu uz Džeimsu. Tas ietver procesu, kas izceļ vienumus no kaudzes, līdz nonākat pie mērķa objekta. Pēc tam tas uznirst mērķa objektu; atjaunina to; un nospiež to kopā ar vienumiem, kas atradās mērķa vienuma augšpusē, atpakaļ uz kaudzīti. Katru reizi, kad vēlaties atjaunināt kādu vienumu savā kaudzē, jums būs jāizmanto programma, kas veic tādas darbības kā iepriekš.

Vienuma dzēšana no kaudzes

Lai izdzēstu vienu vienumu no Stack datu struktūras, varat vēlreiz izmantot pop() metodi. Ja vienums, kuru vēlaties dzēst, nav augšpusē, varat parādīt vienumus augšpusē, līdz sasniedzat vajadzīgo vienumu.

Visu kaudzē esošo vienumu dzēšana

Lai izdzēstu visus elementus no kaudzes, varat izmantot a Java kamēr cilpa ar pop() metodi, lai dzēstu elementus pa vienam. Tomēr efektīvāka pieeja ir izmantot skaidrs () metodi. The skaidrs () metode ir tāda, ko klase Stack manto no Vector klases. Tas neprasa argumentus, neko neatgriež, bet vienkārši noņem visus Stack datu struktūras elementus.

// dzēst visus vienumus kaudzē
Klienti.clear();
System.out.println (Customers.empty());

Iepriekš minētais kods dzēš visus klientu komplektā esošos vienumus. Pēc tam tas izmanto tukšs () metode, lai pārbaudītu, vai kaudze ir tukša. The tukšs () ir vēl viena galvenā Java Stack klases metode. Tas neprasa argumentus un atgriež Būla vērtību. Šī metode atgriež patieso vērtību, ja steka ir tukša, un false pretējā gadījumā.

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

taisnība

Praktiski pielietojumi kaudzes datu struktūrai

Stack datu struktūra ir ļoti ierobežojoša. Tas nenodrošina tik lielu elastību datu apstrādē kā citas datu struktūras. Tas rada jautājumu: kad jums vajadzētu izmantot Stack datu struktūru?

Stack datu struktūra ir ideāli piemērota lietojumprogrammām, kurām nepieciešama datu apstrāde apgrieztā secībā. Tie ietver:

  • Lietojumprogramma, kas pārbauda, ​​vai vārds ir palindroms.
  • Lietojumprogramma, kas pārvērš decimālskaitļus bināros skaitļos.
  • Lietojumprogrammas, kas lietotājiem ļauj atsaukt.
  • Spēles, kas ļauj lietotājam atgriezties pie iepriekšējiem gājieniem, piemēram, šaha spēle.