0
Hallo Semua!
kembali lagi nih sama materi data struct yang menyenangkan ini~~
Kali ini bakalan bahas stack sama queue nih!
Q :apa sih itu stack ?  
A: Sederhananya nih, stack adalah tumpukan. kalian pasti tau dong tumpukan piring atau tumpukan buku. Nah, jadi stack itu ya gitu. data yang bentuknya ditumpuk gitu. jadi data yang terakhir masuk, akan menjadi data yang pertama keluar. LIFO : Last in, Frist Out.
Q: trus kalau Queue apa dong?
A: nah, kalau si queue(bacanya Q ya buka kueue :) ) itu antrian. Semua pada tau dong apa itu antrian? ya ngantri aja. Jadi disini data yang pertama masuk juga menjadi data yang pertama keluar. FIFO : First In, First Out


Pada Stack, menggunakan push Head dan PopHead 

berikut contohnya :

void pushHead(char nama[],int nilai)
{
current = (data*)malloc(sizeof(struct data));

strcpy(current->nama,nama);
current->nilai = nilai;
current->next=current->prev=NULL;

if(head==NULL)
{
head = tail = current;
}
else
{
current->next=head;
head->prev=current;
head=current;
}
}

void popHead()
{
if(head ==NULL)
{
printf("No Data\n");
}
else if(head == tail)
{
current=head;
head = tail = NULL;
free(current);
}
else
{
current=head;
head = head->next;
head->prev=NULL;
free(current);
}
}


Pada Queue , digunakan PushHead dan PopTail 

contohnya seperti ini:

void pushHead(char nama[],int umur)
{
current = (data*)malloc(sizeof(struct data));

strcpy(current->nama,nama);
current->umur=umur;
current->next=current->prev=NULL;

if(head==NULL)
{
head=tail=current;
}
else
{
head->prev=current;
current->next=head;
head=current;
}
}

void popTail()
{
if(head==NULL)
{
printf("No Data\n");
}
else if(head==tail)
{
head=tail=NULL;
free(current);
}
else
{
current=tail;
tail=tail->prev;
tail->next=NULL;
free(current);
}
}


Mudah bukan membedakannya?
Sekian dan terima kasih~
sampai jumpa minggu depan~~

Posting Komentar

Silahkan berkomentar dengan baik ~

 
Top
onmousedown="return false" oncontextmenu="return false" onselectstart="return false" >