Langsung ke konten utama

Program Mengecek apakah tanda kurung balance atau tidak (Parentheses) C Programming


Assalamualaikum.. selamat siang..
dalam posting kali ini saya akan membuat program yang akan mengecek apakah suatu kumpulan string tanda kurung balance atau tidak.
misal "{}[]()" maka balance
"[()]{()}" maka balance
"[()}" maka tidak balance.
berikut cuplikan kodenya...

#include <stdio.h>
#include <stdlib.h>
//typedef bool int

struct sNode{
    char data;
    struct sNode *next;
};

void push(struct sNode** top_ref, char new_data){
    struct sNode *new_node=(struct sNode*)malloc(sizeof(struct sNode));

    if(new_node==NULL){
        printf("Stack overflow");
        getchar();
        exit(0);
    }

    new_node->data=new_data;
    new_node->next=*top_ref;
    *top_ref=new_node;
}
int pop(struct sNode** top_ref){
    char res;
    struct sNode *top;
    if(*top_ref==NULL){
        printf("Stack overflow");
        getchar();
        exit(0);
    }else{
        top=*top_ref;
        res=top->data;
        *top_ref=top->next;
        free(top);
        return res;

    }


}

int isMatchingPair(char c1,char c2){
    if(c1=='(' && c2==')')
        return 1;
    else if(c1=='{' && c2=='}')
        return 1;
    else if(c1=='[' && c2==']')
        return 1;
    else return 0;
}

void printstack(struct sNode *head){
    struct sNode *b;
    b=head;
    while(b!=NULL){
        printf(" %c \n",b->data);
        b=b->next;
    }

}
int areParenthesisBalanced(char exp[]){
    int i=0;
    struct sNode *stack=NULL;
    while(exp[i]){
        if(exp[i]=='{' || exp[i]=='(' || exp[i]=='[')
            push(&stack,exp[i]);
        if(exp[i]=='}' || exp[i]==')' || exp[i]==']'){
                if(stack==NULL)
                    return 0;
                else if(!isMatchingPair(pop(&stack),exp[i]))
                    return 0;
        }
        i++;
    }

    if(stack==NULL)
        return 1;
    else
        return 0;

}


int main(){
char exp[100]="[()]{}";
if(areParenthesisBalanced(exp))
    printf("Balanced");
else
    printf("Not balanced");
return 0;
}


Sekian dari saya.. semoga bermanfaat
#C

Komentar

Posting Komentar

Postingan populer dari blog ini

Tipe data dalam bahasa C (C Programming)

Hai.. ketemu lagi dengan saya di blog yang sederhana ini.. dalam kesempatan kali ini saya akan memposting tentang tipe data dalam bahasa C. yuk kita simak :) Tipe data adalah suatu pengenal (identifier) yang merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh k omputer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif. Bahasa C menyediakan 5 macam tipe data dasar, yaitu 1. Tipe data integer yaitu bilangan bulat dideklarasikan dengan int . 2. Floating point yaitu bilangan pecahan dideklarasikan dengan float . 3. Double precision yaitu bilangan pecahan ketepatan ganda dideklarasikan dengan double . 4. karakter dideklaras

Kimia (Polimer)

A.    DEFINISI POLIMER DAN PEMBENTUKAN POLIMER 1.    Pengertian Polimer Polimer adalah suatu makromolekul yang terbentuk dari molekul-molekul sederhana yang kita sebut sabagai monomer. Monomer adalah bagian terkecil dari suatu polimer. 2.    Pembentukan Polimer Proses pembentukan polimer dari monomer-monomernya disebut polimerisasi. Reaksi polimerisasi adalah reaksi penggabungan beberapa monomer. a.    Reaksi Polimer Adisi Polimerisasi terjadi pada monomer yang memiliki ikatan rangkap. Adalah perkaitan langsung antarmonomer berdasarkan reaksi adisi. 1)    Pembentukan Polietilena (Polietena) Polietilena dibentuk oleh monomer-monomer etena. Etena diperoleh dari hasil perengkahan (cracking) minyak bumi atau gas bumi. Pembentukan polimer ini digambarkan sebagai berikut CH 2 =CH 2   +   CH 2 =CH 2    →    --CH 2 -- CH 2 -- CH 2 -- CH 2 -- →   ( --CH 2 -- CH 2 --) n 2 molekul monomer                     dimer                           

Apa itu using namespace std?

Assalamu’alaikum.. Hai teman-teman.. dalam posting kali ini saya akan sedikit menjelaskan tentang namespace std. using namespace std , perintah ini digunakan untuk mendeklarasikan/ memberitahukan kepada compiler bahwa kita akan menggunakan semua fungsi/class/file yang terdapat dalam namespace std. namespace sendiri memiliki kesamaan dengan paket pada bahasa Java yang berisi pengelompokan fungsi, class dan yang sejenis. Pada C++ library- library umumnya disimpan dalam namespace std, seperti perintah cin dan cout. Perbedaan penulisan apabila kita menggunakan namespace std atau tidak adalah : Tanpa using namespace std               std::cout << " Tanpa menggunakan namespace std " ;       std::cin >> pil; Menggunakan using namespace std      #include <iostream>      using namespace std;       int main()      {         cout << " Menggunakan namespace std ";         cin >> pil;         return 0;      } Na

MEMBACA DAN MENGIDENTIFIKASIKAN MOS,CMOS DAN FET

1)       Komponen MOS, CMOS dan FET diidentifikasi tipenya, rating operasinya .     MOSFET ( Metal Oxide Semiconductor Field Effect Transistor ) MOSFET disebut juga Transistor Efek Medan Oksida Logam, hal ini karena pada Gate di isolasi dari saluran mayoritas pembawa muatan hal ini mengakibatkan arus Gate sangat kecil dan tidak dipengaruhi oleh Positif atau Negatifnya Gate tersebut. MOSFET sering juga disebut sebagai IGFET (Insulated Gate Field Effect Transistor) , mempunyai elektroda Source, Drain dan Gate . Bekerjanya MOSFET berbeda dengan JFET, pada MOSFET Gate/Gerbang di isolasi dari kanal sehingga dapat dioperasikan menggunakan tegangan positif (+), sedang pada JFET menggunakan tegangan negatif (-). Tegangan positif tersebut memeberi manfaat mempertinggi konduktifitas kanal. Makin positif tegangan gerbang, semakin besar konduktifitas dari Source ke Drain (Sumber ke Cerat). Keuntungan utama menggunakan FET adalah, impedansi Inputnya sangat tinggi dan menggun

Mengenal Tipe data dan Operator di VB .net (VB Programming)

Assalamu'alaikum.. pada tutorial kali ini saya ingin berbagi tentang tipe data danoperator yang digunakan dalam pemrograman Visual Basic. selamat menyimak.. :) Teori 2.1. Variabel Variabel   adalah pengalokasian tempat di memory komputer dengan type data tertentu dan datanya dapat diubah. Aturan pendefinisian variabel -           Harus dimulai dengan huruf -           Tidak boleh menggunakan spasi -           Tidak melebihi 255 karakter -           Untuk vb. Net tidak case sensitive (tidak membedakan huruf kecil dan besar -           Boleh menggunakan underscore Contoh penulisan variabel yang benar : -           Dim Dataku as integer -           Dim A4 as double -           Dim Alas_ruang as Boolean Contoh penulisan yang salah -           Dim 4data as Integer -           Dim Data   gambar as date 2.1.1 Ruang lingkup variabel Dalam pendefinisian variabel dikenal dua area yaitu variabel lokal dan variabel global. Variabel lokal adalah vari