Struktur Data Stack



Selamat Pagi sahabat bloggers kali kita Belajar Struktur Data, langsung saja biar tidak lama-lama...heee
Struktur Data Stack
Pengertian Stack atau tumpukan adalah kumpulan data yang seolah-olah diletakkan di atas data yang lain.

Dalam suatu tumpukan dapat dilakukan operasi penambahan dan pengambilan (penghapusan) data melalui ujung yang sama, ujung ini merupakan ujung paling atas tumpukan, yang disebut dengan top of stack.
Bersifat LIFO (Last In First Out)
Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack


Operasi-Operasi / Fungsi Stack
Push
digunakan untuk menambah item pada stack di tumpukan paling atas
Pop
digunakan untuk mengambil item pada stack di tumpukan paling atas
IsEmpty
fungsi yang digunakan untuk mengecek apakah stack sudah kosong
IsFull
fungsi yang digunakan untuk mengecek apakah stack sudah penuh

Stack with Array of Struct
Definisikan Stack dengan menggunakan suatu struct
Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack
Elemen struct Stack adalah array data dan top untuk menadakan posisi data teratas
Buatlah variabel tumpuk sebagai implementasi dari struct Stack
Deklarasikan operasi-operasi/function di atas dan buat implemetasinya
 
Program Lengkap Stack
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX_STACK 10
struct {  int top;
char data[10][10];
}tumpuk;
void inisialisasi()
{ tumpuk.top = -1;}
int IsFull()
{  if(tumpuk.top == MAX_STACK-1) return 1; else return 0;}
int IsEmpty()
{ if(tumpuk.top == -1) return 1; else return 0;}
void Push(char d[10])
{  tumpuk.top++;
   strcpy(tumpuk.data[tumpuk.top],d); }
void Pop()
{ printf("Data yang terambil = %s\n",tumpuk.data[tumpuk.top]);
  tumpuk.top--; }
void Clear()
{ tumpuk.top=-1; }
void TampilStack()
{ for(int i=tumpuk.top;i>=0;i--)
  { printf("Data : %s\n",tumpuk.data[i]); }
}
int main()
{
   int pil;
   inisialisasi();
   char dt[10];
   do{ printf("1. push\n");
          printf("2. pop\n");
          printf("3. print\n");
          printf("4. clear\n");
          printf("5. exit\n");
          printf("Pilihan : ");
          scanf("%d",&pil);
          switch(pil)
          {
          case 1: if(IsFull() != 1)
                       { printf("Data = ");scanf("%s",dt);
                         Push(dt); }
                        else printf("\nSudah penuh!\n");
                        break;
           case 2: if(IsEmpty() != 1)
                        Pop();
                        else
                        printf("\nMasih kosong!\n");
                        break;
           case 3: if(IsEmpty() != 1)
                        TampilStack();
                        else
                        printf("\nMasih kosong!\n");
                        break;
           case 4: Clear();
                        printf("\nSudah kosong!\n");
                        break;
            }
           getch();
        } while(pil != 5);
     getch();
}

Oklik semoga bermanfaat buat Sahabat Bloggers.... 

4 comments

May 12, 2013 at 1:02 PM

hmmm.........mudeng pak bos...kalo urusan kayak ginian........

pas posang...........

May 12, 2013 at 8:22 PM

@dunia bola indonesia Hehe...
belajarnya sedikit" pasti bisa bos...

May 12, 2013 at 8:22 PM

@dunia bola indonesia Hehe...
belajarnya sedikit" pasti bisa bos...

October 7, 2016 at 2:20 PM

Perkenalkan, saya dari tim kumpulbagi. Saya ingin tau, apakah kiranya anda berencana untuk mengoleksi files menggunakan hosting yang baru?
Jika ya, silahkan kunjungi website ini www.kbagi.com untuk info selengkapnya.

Di sana anda bisa dengan bebas share dan mendowload foto-foto keluarga dan trip, music, video, filem dll dalam jumlah dan waktu yang tidak terbatas, setelah registrasi terlebih dahulu. Gratis :)

Post a Comment

Silahkan Berkomentar Dengan Baik dan Sopan
No Spam
No Link

Terima Kasih Telah Berkunjung Ke Blog ini