Pages - Menu

Rabu, 29 Mei 2013

Contoh Implementasi Stack

Contoh Implementasi Stack

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>

void inisialisasi();
void push();
void pop();
void clear();

#define MAX_STACK 10
typedef struct STACK
{ int top;
  char data[10][10];};

STACK tumpuk;

void inisialisasi()
{ tumpuk.top= -1;}

//fungsi untuk melakukan pengecekan terhadap  stack, apakah  stack  tersebut penuh  atau tidak

int IsFull()
{ if(tumpuk.top== MAX_STACK-1) return 1; else return 0;}

//fungsi untuk melakukan pengecekan terhadap  stack, apakah  stack  tersebut kosong  atau  tidak
int IsEmpty()
{ if(tumpuk.top== -1) return 1; else return 0;}

//fungsi untuk  memasukkan  sebuah nilai/ data ke dalam  stack.
//Sebelum sebuah nilai/ data dimasukkan ke dalam  stack
//Prosedur ini terlebih dahulu akan menaikkan posisi TOP satu level ke atas
void Push(char d[10])
{ tumpuk.top++;
strcpy(tumpuk.data[tumpuk.top],d); }

void Pop()
{ printf("Elemen terakhir stack sudah dihapus, yaitu : %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{
     clrscr();
     printf("PILIHAN PROSES\n");
     printf("[1] Masukan Data\n");
     printf("[2] Hapus Data\n");
     printf("[3] Tampil Isi Stack\n");
     printf("[4] Mereset Stack\n");
     printf("[5] Keluar\n");
     printf("Masukan kode pilihan (1 ... 5) : "); scanf("%d",&pil);

switch(pil)
{
    case 1: if(IsFull() != 1)
    { printf("Nama = ");scanf("%s",dt);
    Push(dt); }
    else
     printf("\nSudah penuh, push gagal!\n");
    break;

    case 2: if(IsEmpty() != 1)
    Pop();
    else
    printf("\nMasih kosong!\n");
    break;

    case 3: if(IsEmpty() != 1)
    TampilStack();
    else
    printf("\nStack kosong!\n");
    break;

    case 4: Clear();
    printf("\nStack sudah di hapus!\n");
    break;
    }
  getch();
  } while(pil!= 5);
getch();
}

2 komentar:

  1. I have read so many posts regarding the blogger lovers however this post
    is truly a nice piece of writing, keep it up.
    메이저사이트
    경마

    BalasHapus
  2. I am always on the lookout for quality posts and articles so i suppose im lucky to have found this! I hope you will be adding more in the future
    majortotositepro2
    oncasinositeinfo02
    totopickpro2

    BalasHapus