PROGRAM STACK DENGAN LINK LIST

nihh aneh bagi program untuk membuat stack dengan menggunkan linked list


#include<iostream>
using namespace std;


//   menciptakan struktur node
struct node
{
    int data;//deklarasi data
    struct node *next;
};

// menciptakan class stack
class amabell
{
    struct node *top;//struck dengan node
    public:
    stack() // construktor
    {
        top=NULL;
    }
    void push(); // untuk memasukan element
    void pop();  // untuk menghapus element
    void show(); // untuk menunjukan tumpukan
};
// operasi PUSH
void amabell::push()
{
    int value; //deklarasi bilangan nilai
    struct node *ptr;
    cout<<"\nOperasi PUSH";//output OPERASI PUSH
    cout<<"\nMasukan Nomor =  ";//output MASUKAN NOMOR
    cin>>value; // input nilai
    ptr=new node; //membuat gerbong baru
    ptr->data=value;//data sama dengan nilai value
    ptr->next=NULL; //di isi dengan ptr-> selanjutnya null
    if(top!=NULL) //jika top tidak sama dengan null
        ptr->next=top;// ptr next sama dengan top
    top=ptr;
    cout<<"\nItem baru dimasukan ke stack!!!";//menampilkan output item baru stack

}

// operasi POP
void amabell::pop()
{
    struct node *temp;
    if(top==NULL)//berikutnya gerbong
    {
        cout<<"\nStack Kosong!";//output stack kosong
    }
    temp=top;//temp di isi dengan top
    top=top->next;//isi di isi dengan  isi ->next
    cout<<"\nPop Operasi... Nilai pop adalah =  "<<temp->data<<endl;//output
    delete temp;//menghapus
}

// menunjukan tumpukan
void amabell::show()
{
    struct node *ptr1=top;
    cout<<"\nTumpukan adalah : ";//output TUMPUKAN ADALAH
    while(ptr1!=NULL)//perulangan dengan while
    {
        cout<<ptr1->data<<" ->";//output data ptr1 data
        ptr1=ptr1->next;//mendeklarasikan ptr1 dengan nilai selanjutnya
    }
    cout<<"NULLn";//data sama dengan NULL
}

// fungsi main
int main()
{
    amabell s;
    int choice;// deklarasi pilihan
    while(1)
    {
        cout<<""<<endl;// output baris baru
        cout<<"STACK USING LINKED LIST\n"<<endl; //output STACK USING LINK LIST
        cout<<"1:PUSH\n2:POP\n3:DISPLAY STACK\n4:EXIT"<<endl; // output push,pop,dsiplay,exit
        cout<<"Masukan pilihan(1-4): "<<endl;//output masuka pilihan
        cin>>choice;// input pilihan
        switch(choice)//beralih pilihan
        {
            case 1://pilihan satu
                s.push();//pilihan push
                break;//pemutusan
            case 2://pilihan dua
                s.pop();//pilihan pop
                break;//pemutusan
            case 3://pilihan 3
                s.show();//pilihan memunculkan
                break;//pemutusan
            case 4://pilihan empat
                return 0;//kembali 0
                break;//pemutusan
            default://fungsi berhenti
                cout<<"masukan nomor pilihan(1-4)!!";//output masukan nomor
                break;
        }
    }
    return 0;
}


0 komentar: