Ievads par saistīto sarakstu izmantošanu Java

Ievads par saistīto sarakstu izmantošanu Java

Datu struktūra izmanto dažādas iepriekš noteiktas metodes datu glabāšanai, izgūšanai un dzēšanai, kas beidzas ar efektīvu programmu izveidi. Saistītais saraksts ir populāra datu struktūra, kas sastāv no savienoto (vai saistīto) mezglu saraksta.





Bet kā izveidot saistītu sarakstu Java? Paskatīsimies.





Kā darbojas saistītais saraksts?

Katrs saistītais saraksts sākas ar īpašu mezglu, ko bieži dēvē par “galvu”, un kura pienākums ir vienmēr norādīt uz saraksta sākumu. Galva ir svarīga, jo katram saistītā saraksta mezglam nav fiziski jāseko savam pēctecim (tas nozīmē, ka priekšgājējam un pēctecim nav jābūt fiziski blakus).





Tāpat kā jebkura datu struktūra, saistītais saraksts atvieglo izveidi, izgūšanu, ievietošanu un iznīcināšanu, izmantojot iepriekš definētu funkciju kopumu, ko var izmantot jebkurš izstrādātājs.

Saistīta saraksta izveide Java

Java programmai, kas paredzēta saistītu sarakstu izveidei un manipulēšanai, būs trīs atšķirīgas sadaļas; mezglu klase, saistītā saraksta klase un draiveris. Lai gan šīs trīs sadaļas var apvienot vienā failā, datorzinātnēs pastāv dizaina princips, kas pazīstams kā “bažu atdalīšana”, kas būtu jāzina katram izstrādātājam.



Bažu nodalīšanas princips nosaka, ka katra koda sadaļa, kas attiecas uz konkrētām problēmām, ir jāatdala. Šis princips palīdzēs jums izveidot tīrāku (lasāmāku) kodu un ir ideāli piemērots datu struktūru izveidošanai.

Pirmais solis, lai izveidotu Java sarakstu, ir izveidot mezglu klasi. Mezglu klasei jābūt diviem atribūtiem; viens no atribūtiem attēlo mezgla datu daļu, bet otrs atribūts - saistīto daļu. Mezglu klasei vajadzētu būt arī konstruktoram, getteriem un setteriem.





Saistīts: Uzziniet, kā izveidot nodarbības Java

Ieguvēji un iestatītāji ļaus citām klasēm (piemēram, saistīto sarakstu klasei) piekļūt dažādiem mezgliem saistītajā sarakstā.





Mezglu klases piemērs

Tālāk ir sniegts mezglu klases piemērs, lai jūs varētu saprast, ko mēs domājam:


public class Node {
private int Data;
private Node NextNode;
//constructor
public Node() {
Data = 0;
NextNode = null;
}
//getters and setters
public int getData() {
return Data;
}
public void setData(int data) {
Data = data;
}
public Node getNextNode() {
return NextNode;
}
public void setNextNode(Node nextNode) {
NextNode = nextNode;
}
}

Šajā piemērā datu atribūtā tiks saglabātas veselu skaitļu vērtības. Tagad, kad jums ir mezglu klase, ir pienācis laiks pāriet uz saistīto sarakstu.

Saistītā saraksta piemērs

Tālāk ir sniegta Java saraksta piemērs.

public class LinkedList {
private Node Head;
//constructor
public LinkedList() {
Head = null;
}
}

Iepriekš minētais kods izveidos saistītu saraksta klasi, tomēr bez dažādām darbībām klasi var uzskatīt par tukšas čaulas ekvivalentu. Saistītajai saraksta datu struktūrai ir vairākas darbības, kuras var izmantot tās aizpildīšanai:

  • Ievietojiet priekšpusē.
  • Ievietojiet vidū.
  • Ievietojiet aizmugurē.

Saistīts: Kā izveidot datu struktūras, izmantojot JavaScript ES6 klases

Saistītā ievietošanas metožu sarakstu kolekcija ir viens no iemesliem, kāpēc izstrādātājs varētu izvēlēties izmantot šo datu struktūru citā datu struktūrā, piemēram, kaudzēs (kas ļauj ievietot un dzēst tikai no augšas).

Ievietošanas izmantošana priekšpusē

Ievietošanas priekšpusē metode, kā norāda nosaukums, saistītā saraksta sākumā ievieto jaunus datus (vai jaunus mezglus).

Ievietojiet priekšējās metodes piemēru

Tālāk ir sniegts piemērs tam, kā saraksta sākumā ievietot jaunus datus.

//insert node at front method
public void insertAtFront(int key) {
//create a new node using the node class
Node Temp = new Node();
//check if the Temp node was successfully created
//assign the data that was provides by the user to it
if(Temp != null) {
Temp.setData(key);
Temp.setNextNode(null);

//check if the head of the linked list is empty
//assign the node that was just created to the head position
if(Head == null) {
Head = Temp;
}
//if a node is already at the head position
//add the new node to it and set it as the head
else {
Temp.setNextNode(Head);
Head = Temp;
}
}
}

The insertAtFront metode iepriekš minētajā piemērā ļauj lietotājam pievienot jaunus mezglus attiecīgajam saistītajam sarakstam.

Ievietojuma pielietošana priekšpusē

Tālāk ir sniegts piemērs, kā ievietot ieliktni priekšpusē.

public class Driver {
//executes the program
public static void main(String[] args) {
//create a new linked list called List
LinkedList List = new LinkedList();
//add each value to the front of the linked list as a new node
List.insertAtFront(10);
List.insertAtFront(8);
List.insertAtFront(6);
List.insertAtFront(4);
List.insertAtFront(2);
}
}

The Šoferis klase (tas ir nosaukums, kas bieži tiek piešķirts izpildāmajai klasei Java), izmanto klasi LinkedList, lai izveidotu saistītu sarakstu ar pieciem pāra skaitļiem. Aplūkojot iepriekš minēto kodu, vajadzētu viegli redzēt, ka skaitlis “2” atrodas saistītā saraksta galvenajā pozīcijā. Bet kā jūs to varat apstiprināt?

kā atrast vecās tīmekļa lapu versijas

Izmantojot visu mezglu parādīšanas metodi

Visu mezglu parādīšanas metode ir būtiska saistītā saraksta metode. Bez tā izstrādātājs nevarēs redzēt mezglus saistītā sarakstā. Tas pārvietojas pa saistīto sarakstu (sākot no galvas), drukājot datus, kas saglabāti katrā mezglā, kas veido sarakstu.

Parādīt visu mezglu metodes piemēru

Tālāk ir sniegts piemērs, kā Java izmantot displeja visas piezīmes metodi.

//display all nodes method
public void displayAllNodes() {
//create a new node call Temp and assign it to the head of the linked list
//if the head has a null value then the linked list is empty
Node Temp = Head;
if (Head == null){
System.out.println('The list is empty.');
return;
}
System.out.println('The List:');

while(Temp != null) {
//print the data in each node to the console(starting from the head)
System.out.print(Temp.getData() + ' ');
Temp = Temp.getNextNode();
}
}

Tagad, kad displayAllNodes metode ir pievienota LinkedList klasi, varat apskatīt saistīto sarakstu, pievienojot vadītāju klasei vienu koda rindu.

Izmantojot visu mezglu parādīšanas metodes piemēru

Tālāk redzēsit, kā izmantot visu mezglu parādīšanas metodi.

//print the nodes in a linked list
List.displayAllNodes();

Izpildot iepriekš minēto koda rindu, konsolē tiks parādīta šāda izvade:

Saraksts:

2 4 6 8 10

Izmantojot mezgla atrašanas metodi

Būs gadījumi, kad lietotājs saistītā sarakstā vēlēsies atrast konkrētu mezglu.

Piemēram, nebūtu praktiski, ja banka, kurai ir miljoniem klientu, drukātu visu klientu datus savā datu bāzē, kad viņiem ir jāredz tikai informācija par konkrētu klientu.

Tāpēc tā vietā, lai izmantotu displayAllNodes metode, efektīvāka metode ir atrast vienu mezglu, kas satur nepieciešamos datus. Šī iemesla dēļ viena mezgla metodes meklēšana ir svarīga saistītā saraksta datu struktūrā.

Meklējiet mezgla metodes piemēru

Tālāk ir sniegts mezgla atrašanas metodes izmantošanas piemērs.

//search for a single node using a key
public boolean findNode(int key) {
//create a new node and place it at the head of the linked list
Node Temp = Head;
//while the current node is not empty
//check if its data matches the key provided by the user
while (Temp != null) {
if (Temp.getData() == key) {
System.out.println('The node is in the list');
return true;
}
//move to the next node
Temp = Temp.getNextNode();
}
//if the key was not found in the linked list
System.out.println('The node is not in the list');
return false;
}

Ar displayAllNodes metodi, jūs apstiprinājāt, ka LinkedList satur 5 pāra skaitļus no 2 līdz 10. findNode Iepriekš minētais piemērs var apstiprināt, vai viens no šiem pāra skaitļiem ir cipars 4, vienkārši izsaucot metodi vadītāja klasē un norādot numuru kā parametru.

Izmantojot mezgla atrašanas metodes piemēru

Tālāk ir sniegts piemērs tam, kā praksē izmantot mezgla atrašanas metodi.

//check if a node is in the linked list
List.findNode(4);

Iepriekš minētais kods konsolē radīs šādu izvadi:

The node is in the list

Izmantojot mezgla dzēšanas metodi

Izmantojot to pašu bankas piemēru no augšas, klients bankas datu bāzē varētu vēlēties slēgt savu kontu. Šeit noderēs mezgla dzēšanas metode. Tā ir vissarežģītākā saistītā saraksta metode.

Metode Dzēst mezglu meklē noteiktu mezglu, dzēš šo mezglu un saista iepriekšējo mezglu ar to, kas seko dzēstajam mezglam.

Mezgla metodes dzēšanas piemērs

Zemāk ir mezgla dzēšanas metodes piemērs.

public void findAndDelete(int key) {
Node Temp = Head;
Node prev = null;
//check if the head node holds the data
//and delete it
if (Temp != null && Temp.getData() == key) {
Head = Temp.getNextNode();
return;
}
//search the other nodes in the list
//and delete it
while (Temp != null) {
if (Temp.getNextNode().getData() == key ) {
prev = Temp.getNextNode().getNextNode();
Temp.setNextNode(prev);
return;
}
Temp = Temp.getNextNode();
}
}

Izmantojot mezgla dzēšanas metodes piemēru

Zemāk ir piemērs mezgla dzēšanas metodes izmantošanai praksē.

spēlējot vecās spēles operētājsistēmā Windows 10
//delete the node that holds the data 4
List.findAndDelete(4);
//print all nodes in the linked list
List.displayAllNodes();

Izmantojot divas iepriekš minētās koda rindas esošajā draiveru klasē, konsole radīs šādu izvadi:

The List:
2 6 8 10

Tagad jūs varat izveidot saistītus sarakstus Java

Ja jūs nokļuvāt šī apmācības raksta beigās, jūs uzzināsit:

  • Kā izveidot mezglu klasi.
  • Kā izveidot saistītu sarakstu klasi.
  • Kā aizpildīt saistīto sarakstu klasi ar iepriekš definētām metodēm.
  • Kā izveidot draiveru klasi un izmantot dažādas saistīto sarakstu metodes, lai sasniegtu vēlamo rezultātu.

Saistītais saraksts ir tikai viena no daudzajām datu struktūrām, ko varat izmantot datu glabāšanai, izgūšanai un dzēšanai. Tā kā jums ir viss nepieciešamais, lai sāktu, kāpēc neizmēģināt šos piemērus sev Java?

Kopīgot Kopīgot Čivināt E -pasts Kā izveidot un veikt masīvu darbības Java

Mācīties Java? Ļaujiet masīviem viegli apstrādāt jūsu datus.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Java
  • Programmēšana
  • Kodēšanas padomi
Par autoru Kadeiša Kīna(Publicēti 21 raksti)

Kadeisha Kean ir pilna komplekta programmatūras izstrādātājs un tehniskais/tehnoloģiju rakstnieks. Viņai ir izteikta spēja vienkāršot dažus no sarežģītākajiem tehnoloģiskajiem jēdzieniem; materiāla ražošana, ko var viegli saprast ikviens tehnoloģiju iesācējs. Viņa aizraujas ar rakstīšanu, interesantas programmatūras izstrādi un pasaules apceļošanu (caur dokumentālajām filmām).

Vairāk no Kadeisha Kean

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu