Jumat, 28 Februari 2014

Sequential and Linked Representation [Java]

ADT biasanya dapat diwakilkan menggunakan sequential dan linked representation. Hal ini memudahkan untuk membuat sequential representation dengan menggunakan array. Bagaimanapun juga, masalah dengan menggunakan array adalah pembatasan size, yang membuatnya tidak fleksibel. Dengan menggunakan array, sering terjadi kekurangan atau kelebihan space memori. Mempertimbangkan hal tersebut, Anda harus
membuat sebuah array dan mendeklarasikannya agar mampu menyimpan 50 elemen.

Jika user hanya memasukkan 5 elemen, maka 45 space pada memori akan sia-sia. Disisi lain, jika user ingin memasukkan 51 elemen, space yang telah disediakan didalam array tidak akan cukup. Dibandingkan dengan sequential representation, linked representation lebih sedikit rumit tetapi lebih fleksibel. Linked representation menyesuaikan memori yang dibutuhkan oleh user.


Contoh Source Codenya

 class SeqStack {
 int top = -1;
 int memSpace[];
 int limit;
/* pada permulaan, stack kosong*/
/* penyimpanan untuk integer */
/* ukuran dari memSpace */
 SeqStack() {
  memSpace = new int[10];
  limit = 10;
 }
 SeqStack(int size) {
  memSpace = new int[size];
  limit = size;
 }
 boolean push(int value) {
  top++;
/* memeriksa apakah stack penuh */
  if (top < limit) {
   memSpace[top] = value;
  } else {
   top--;
   return false;
  }
  return true;
 }
 int pop() {
  int temp = -1;
/* memeriksa apakah stack kosong */
  if (top >= 0) {
   temp = memSpace[top];
   top--;
  } else {
   return -1;
  }
  return temp;
 }
 public static void main(String args[]) {
  SeqStack myStack = new SeqStack(3);
  myStack.push(1);
  myStack.push(2);
  myStack.push(3);
  myStack.push(4);
  System.out.println(myStack.pop());
  System.out.println(myStack.pop());
  System.out.println(myStack.pop());
  System.out.println(myStack.pop());
 }
}

Hasilnya

Sumber : JENI (Java Education Network Indonesia)

Tidak ada komentar:

Posting Komentar