Stack adalah sekumpulan data yang seakan-akan diletakkan diatas data yang lain.stack hanya bisa menambah atau menghapus data dari ujung atas. misalnya saya punya 5 bungkus rokok, rokok pertama itu diletakkan di atas meja kemudian rokok kedua diletakkan diatas rokok yang pertama begitupun seterusnya dan ketika ingin diambil maka rokok itu hanya diambil dari barisan paling atas, tidak bisa diambil langsung kebawa. seperti itulah kira2 gambaran dari operasi stack.
sedangkan List merupakan tipe data koleksi yang memiliki indeks kontinyu dan dapat dioperasikan secara dinamis tanpa dibatasi jumlah indeks ataupun tipe data dasarnya. LinkList adalah tipe data koleksi seperti List tetapi memiliki indeks yang diskontinyu. Indeks data LinkList tidak terkait secara fisik, namun indek data terkoneksi melalui link. berikut gambaran dari LinkList.
Dalam operasional stack menggunakan link list terdapat fungsi-fungsi yang harus ada yaitu :
1. Push
Merupakan operasi dalam stack yang digunakan untuk menambahkan data ke dalam sebuah stack.
2. pop
Merupakkan operasi dalam stack yang digunakan untuk menghapus data pada stack dari ujung atas.
3. print
print itu hanya nama dari sebuah fungsi. pada stack bisa digunakan untuk menampilkan semua data yan sudah dimasukkan kedalam stack.
berikut gambaran dari antrian stack
untuk lebih jelasnya mari kita bersama-sama belajar codingnya
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tugprak;
/**
*
* @author Fuad H
*/
public class stack { // sebagai class dari data yang ada
int data;
stack link;
}
class linklis{
stack head; // untuk menentukan ujung dari stack
void push(int a){ // menambah data ke dalam stack
stack bantu = new stack();
bantu.data=a; // bantu itu merupakan data yang akan dimasukkan
if(head == null){// jika headnya(ujung) itu null(tidak ada nilai)
head = bantu;//maka head diganti dengan data yang dimasukkan
} else { // ketiak seebaliknya
bantu.link = head; //link dari data baru (linknya bantu) dijadikan head
head = bantu; // headnya di pindah ke bantu lge
}
}
void pop(){ // untuk menghapus data pada stack
stack bantu=head;//karena data yang ingin di hapus adalah ujung (headnya)
bantu=head.link;//maka bantu diarahkan ke linknya head
head = bantu;// kemudia head di pindah ke bantu
}
void tampil(){
stack bantu = head;
while (bantu!=null){ // ulangi selama bantu itu tidak = kosong(null)
System.out.println(bantu.data); //selama pengulang tampilkan data
bantu=bantu.link; //bantu itu = link ddari bantu agar megulang sampai data terakhir
}
}
public static void main(String[] args) {
linklis aku = new linklis(); // pemanggilan fungsi
aku.push(2); // menambah data yang baru
aku.push(3);//
aku.push(4);
aku.push(5);
aku.pop(); //mengapus 1 data di ujung atas
aku.tampil(); // untuk menampilkan
}
}
Semoga tulisan diatas berfaat
mohon maaf apabila ada kekurangan ataupun kelebihan karena saya juga masih dalam proses belajar.....
mohon dimaklumi.....
selamat mencoba dan semoga berhasil......