CATATULANG

Materi Kuliah Teknik Informatika

Stack Dalam Bahasa C





Stack dalam bahasa Indonesia adalah tumpukan menggunakan mekanisme LIFO (Last In First Out), sehingga yang baru masuk adalah yang pertama keluar.
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 5
typedef int Element;
typedef struct{
int top;
Element array[MAX];
}Stack;
void initzifiStack(Stack *s)
{
(*s).top=-1;
}
bool iszifiEmpty(Stack s)
{
if(s.top==-1)
return true;
else
return false;
}
bool iszifiFull(Stack s)
{
if(s.top==MAX-1)
return true;
else
return false;
}
void push(Stack *s, Element var)
{
if(!iszifiFull(*s)){
(*s).top++;
(*s).array[(*s).top]=var;
}else{
printf("Stack is full\n");
}
}
Element pop(Stack *s)
{
Element var=0;
if(!iszifiEmpty(*s)){
var=(*s).array[(*s).top];
(*s).top--;
return var;
}else{
printf("Can't Pop! Stack is empty!\n");
return var;
}
}
void displayStack(Stack s)
{
Element e;
if(!iszifiEmpty(s)){
do{
e=pop(&s);
printf("\n\n%d",e);
}while(!iszifiEmpty(s));
}
else
printf("Stack Empty!");
}
int main()
{
Stack s;
Element input, temp;
initzifiStack(&s);
do
{
system("cls");
puts("Menu Zivi Stack");
puts("1. Push Element");
puts("2. Pop Element");
puts("3. Display Stack");
puts("Esc. Exit");
puts("Pilih : ");
switch(getch())
{
    case '1' : if(!iszifiFull(s)){
do{
printf("Input Number of Integer: ");scanf("%d", &input);
}while(input==0);
push(&s, input);
}else{
printf("Stack is full\n");
}
break;
case '2' : temp=pop(&s);
if(temp!=0){
printf("Popped element: %d",temp);
}
break;
case '3' : displayStack(s);
break;
}
}while(getch()!=27);
getch();
return 0;
}
Bagikan :
+
Previous
Next Post »
0 Komentar untuk "Stack Dalam Bahasa C"

 
Copyright © 2015 CATATULANG - All Rights Reserved
Template By Kunci Dunia
Back To Top