Senin, 17 Oktober 2011



Rules of the stack:

1. An item can only be added to the top.

2. An item can only be removed from the top.

3. An item can only be accessed from the top.

4. Items cannot be accessed or removed if the stack is empty.

Array Pushdown Stack


Stack (Tumpukan) adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur linear. Kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja yaitu posisi ATAS (TOP) tumpukan. Tumpukan digunakan dalam algoritma pengimbas (parsing), algoritma penilaian (evaluation) dan algoritma penjajahan balik (backtrack). Elemen-elemen di dalam tumpukan dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.
Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.
Tumpukan disebut juga “Push Down Stack” yaitu penambahan elemen baru (PUSH)ndan penghapusan elemen dari tumpukann(POP). Contoh pada PDA (Push Down Automaton). Sistem pada pengaksesan pada tumpukan menggunakn system LIFO (Last In First Out), artinya elemen yang terakhir masuk itu yang akan pertama dikeluarkan dari tumpukan (Stack). Ilustrasi tumpukan (Stack) dapat digambarkan seperti tumpukan CD atau tumpukan sate. Stack merupakan suatu susunan koleksi data dimana dapat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan Top Of Stack.

contoh program

class StackApp
{
public static void main(String[] args)
{
StackX theStack = new StackX(10); // make new stack
theStack.push(20); // push items onto stack
theStack.push(40);
theStack.push(60);
theStack.push(80);
theStack.pop();
while( !theStack.isEmpty() ) // until it’s empty,
{ // delete item from stack
long value = theStack.pop();
System.out.print(value); // display it
System.out.print(” “);
} // end while
System.out.println(” “);
} // end main()
} // end class StackApp

Program Menggunakan Rekursif

Rekursif adalah pemanggilan ber ulang-ulang dalam fungsi.Berikut adalah salah satu contoh program dengan menggunakan rekursif 

#include<stdio.h>

#include<conio.h>
#include<iostream>
Using namespace std;

int pangkat(int j,int k){
int hasil;
if(k==0){hasil=1;}
else{
hasil=j*pangkat(j,k-1);
}
return(hasil);
}
Int main(){
Printf(“program perpangaktan \n\n”);
Int x,a,hasil;
Printf(“masukkan nilai x=”);scanf(“%d”,&x);
Printf(“masukkan nilai a=”);scanf(“%d”,&a);
Cout<<”hasil pemangkatan”<<x<<”^”<<a<<”=”<<pangkat(x,a);