Berikut ini adalah perbandingan pada operasi-operasi dasar dari Stack Dengan Linked List dan Stack Dengan Array versi bahasa C (yang versi bahasa Pascal bisa dilihat pada:Agus Fahyadi,dkk,MIPA UGM) :
Stack Dengan Linked List
operasi : create()
Bentuk struct awal :
struct node {
elementype data;
struct node*next;
};
void creat () {
head=NULL;
};
operasi : empty()
int empty () {
if (head==NULL) return 1;
else return 0;
};
operasi : full()
tidak ada istilah full pada stack.
program tidak menentukan jumlah elemen stack yang mungkin ada. kecuali dibatasi oleh
pembuat program dan jumlah memory yang
tersedia. tempat akan sesuai dengan
banyaknya elemen yang mengisi stack.
operasi : push()
void push (elementype e) {
struct node *ptr;
ptr=(struct node*)malloc(sizeof(struct
node));
ptr->data=e;
ptr->next=head;
head=ptr;
};
operasi : pop()
void pop (elementype e) {
struct node *ptr;
*e=head->data;
ptr=head;
head=head->next;
free(ptr);
};
operasi : clear()
void clear () {
elementype *;
while (!empty()) pop (&x);
};
Stack Dengan Array
operasi : create()
int T[max],top;
void creat () {
top= -1;
};
operasi : empty()
int empty () {
if (head==NULL) return 1;
else return 0;
}; int empty () {
if (top== -1) return 1;
else return 0;
}
operasi : full()
int full () {
if (top==max-1) return 1;
else return 0;
};
operasi : push()
void push (elementype e) {
struct node *ptr;
ptr=(struct node*)malloc(sizeof(struct
node));
ptr->data=e;
ptr->next=head;
head=ptr;
};
void push (int e) {
if (! Full () ) {
top=top+1;
T(top)=e;
}
};
operasi : pop()
void pop (int e) {
if (! Empty () ) {
e=T(top);
top- =1;
}
};
operasi : clear()
procedure clear ;
begin
top := 0 ;
end;
untuk lebih jelas disertakan juga perbedaan array dan link list :
Array : Link List
Statis : Dinamis
insert/delete data terbatas : insert/delete data tidak terbatas
Random access : Sequensial access
delete array tidak mungkin : delete link list mudah
Java...coming up!!!
Tidak ada komentar:
Posting Komentar