Klo Sudah di bUka jangan Lupa untuk Join D site ku ya Biar rame Gitu.....!!!!

Dan Pesan saya kpada pembaca pahamilah setiap yang anda baca biar Ilmunya lebih masuk dan meresap ke otak anda

Wednesday 19 December 2012

Konversi Infix ke Postfix dan Prefix (C)

Kali ini saya mencoba membuat program dengan menggunakan bahasa C
Program ini merupakan implementasi dari penggunaan adt stack atau LIFO (Last In First Out)

Program yang saya buat merupakan program untuk mengkonversi penulisan matematika secara infix menjadi postfix atau menjadi prefix
sebagai contoh :
4+6*7/3
maka hasilnya adalah

4673/*+ (postfix)
+4/*673 (prefix)

source code nya dapat sobat copy di
Source Code :

stack.cpp :

/* File : stackt.cpp */
/* Deskripsi : Isi dari header stack.h*/
/* Dibuat oleh : Taufik Rohmat/08501032 */
/* Tanggal : 26-April-2009 */

#include "stack.h"
#include "boolean.h"

void SetTop (Stack *S, address NewTop)
/* Memberi Nilai TOP yang baru dengan NewTop */
{
Top(*S)=NewTop;
}

void SetInfoTop (Stack *S, infotype NewInf)
/* Memberi nilai Top yang baru dengan NewInf */
{
InfoTop(*S)=NewInf;
}

/* PROTO TYPE */
/**** Konstruktor/Kreator ****/
void CreateEmpty (Stack *S)
/* IS : S sembarang */
/* FS : Membuat sebuah stack S yang kosong berkapasitas MaxEl+1 */
/* jadi indeksnya antara 1 .. MaxEl karena 0 tidak dipakai */
/* Ciri stack kosong : TOP bernilai Nil */
{
Top(*S)=Nil;
}

/**** Predikat untuk test keadaan KOLEKSI ****/
boolean IsEmpty (Stack S)
/* Mengirim true jika Stack Kosong */
{
return(Top(S)==Nil);
}

boolean IsFull (Stack S)
/* Mengirim true jika tabel penampung elemen stack sudah penuh */
{
return(Top(S)==MaxEl);
}

/**** Menambahkan sebuah elemen ke Stack ****/
void Push (Stack *S, infotype X)
/* Menambahkan X sebagai elemen stack S */
/* IS : S mungkin kosong, tabel penampung elemen stack TIDAK penuh */
/* FS

: X menjadi TOP yang baru, TOP bertambah 1 */
{
SetTop(S, Top(*S)+1);
SetInfoTop(S,X);
}

/**** Menghapus sebuah elemen Stack ****/
void Pop (Stack *S, infotype *X)
/* Menghapus X dari Stack S */
/* IS : S tidak mungkin kosong */
/* FS : X adalah nilai elemen TOP yang lama, TOP berkurang 1 */
{
*X=InfoTop(*S);
SetTop(S, Top(*S)-1 );
}

No comments:

Post a Comment

kalau mau komentar yang sopan dan enak di baca ya Cuy
Terimakasih atas komentarnya.. ... ... ..