Contoh PROGRAM STACK and QUEUE (STACK & QUEUE)

 PROGRAM STACK and QUEUE (STACK & QUEUE)
Stack (tumpukan) sebenarnya secara mudah dapat diartikan sebagai list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top (puncak) dari stack.
Dengan melihat definisi tersebut maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu elemen yang terakhir masuk akan pertama kali diambil atau dilayani.

Dua operasi dasar pada stack adalah PUSH  dan POP. Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi/

Dibawah ini adalah source codenya:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

using namespace std;

int top,i;
char key,temp,e;
char stack[10];
void delay();

void gotoxy(int x, int y)
{
    HANDLE hConsoleOutput;
    COORD dwCursorPosition;
    cout.flush();
    dwCursorPosition.X = x;
    dwCursorPosition.Y = y;
    hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}

void clrscr()
{
    system("cls");
}

void pushanim()
{
 for(i=0;i<=17; i++)
 {
  gotoxy(22+i,7);cout<<" ";
  gotoxy(23+i,7); cout<<temp; delay();

 }
 for(i=1;i<=(14-top);i++)
 {
  delay();
  gotoxy(40,6+i); cout<<" ";
  gotoxy(40,7+i); cout<<temp;
 }
}

void popanim(char temp)
{
 for(i=1;i<=(14-top);i++)
 {
  delay();
  gotoxy(40,22-i-top); cout<<" ";
  gotoxy(40,21-i-top); cout<<temp;
 }
 for(i=1;i<=19;i++)
 {
  delay();
  gotoxy(38+i,7); cout<<" ";
  gotoxy(39+i,7); cout<<temp; delay();
 }
 gotoxy(58,7);cout<<" ";
}

void push(char e)
{
 top=top+1;
 stack[top]=e;
 pushanim();
}
void pop(char e)
{
 if(top !=0)
 {
  e=stack[top]; popanim(e);
  top=top-1;
 }
 else
 {
  gotoxy(1,7); cout<<"stack telah kosong"<<endl;
  gotoxy(1,7);
 }
}

int main()
{
  clrscr();
  cout<<"==========PROGRAM ANIMASI STACK=========="<<endl;
  cout<<"1.PUSH"<<endl;
  cout<<"2.POP"<<endl;
  cout<<"3.QUIT"<<endl;
  //cout<<"pilih [1/2/3] ="<<endl;
  gotoxy(59,6); cout<<"=";
  gotoxy(59,8); cout<<"=";
  gotoxy(37,9); cout<<"||   ||";
  for(i=1;i<=11;i++)
  {
   gotoxy(38,10+i);
   if(i==11)
    cout<<"|___|";
   else
   cout<<"|   |";
  }
   top=0;
   do
   {
   input:
   gotoxy(1,5);
   cout<<"masukkan pilihan anda[1/2/3] : ";
   key=getche();
   if(int(key)==27 || key=='3')
    break;
   else if(key=='1')
     {
       if(top != 10)
       {
        gotoxy(1,7); cout<<"masukkan suatu huruf : ";
        cin>>temp;
            push(temp);
        gotoxy(1,7); cout<<"                      ";
       }
       else
       {
        gotoxy(1,7); cout<<"stack penuh";
            getch();
        gotoxy(1,7); cout<<" ";
       }
     }
   else if(key=='2')
        pop(temp);
   else
    goto input;
  }while(1);

 getch();
}

void delay()
{
 for(int y=1;y<100;y++)
 for(int x=1;x<100;x++)
 for(int p=1;p<100;p++)
 cout<<"";
}



dan inilah hasilnya :

Labels: PROGRAM

Thanks for reading Contoh PROGRAM STACK and QUEUE (STACK & QUEUE). Please share...!

0 Comment for "Contoh PROGRAM STACK and QUEUE (STACK & QUEUE)"

berkomentarlah dengan bijak

Search This Blog

Blog Archive

Back To Top