Minggu, 04 Januari 2015

Single Link List Non Circular Borland C++

Hallo... Selamat malam kalian semua para pecinta coding maupun kawan-kawan programmer... kali ini saya akan sedikit sharing mengenai program single lingk list circular.. untuk itu silahkan simak program yang telah saya buat... monggo simak

Single Link List Circular
Single Link List Circular


#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

typedef struct TNode {
            int data;
         TNode *next;
         }data;
TNode *head; //diisi menggunakan head sebagai pointer utama
void init(){ //Fungsi untuk inisialisasi awal linked list
        head=NULL;        //Untuk pertama kali,head bernilai NULL
}
int IsEmpty(){
        if(head==NULL)
              return 1;
      else
              return 0;
}
                                
void insertdepan(int n){        
        TNode *baru;   //Diisi menggunakan baru sebagai pointer TNode
      baru=new TNode;
      baru->data=n;
      baru->next=NULL;        //pointer baru->next bernilai NULL
      if (IsEmpty()==1){
              head=baru;
            head->next=NULL;
      }
      else {
              baru->next=head;
            head=baru;
      }
      cout<<"\nData Terisi"<<endl;
}

void tampil(){
        TNode *bantu;
      bantu=head;
      if (IsEmpty()==0){
              while(bantu!=NULL){
                    cout<<bantu->data<<endl;
                  bantu=bantu->next;
              }
      }else
    cout<<"\nMasih Kosong"<<endl;
}

void insertbelakang(int n){
        TNode *baru,*bantu;
      baru=new TNode;
      baru->data=n;
      baru->next=NULL;
      if(IsEmpty()==1){
              head=baru;
            head->next=NULL;
      }else{
              bantu=head;
            while(bantu->next!=NULL){
                    bantu=bantu->next;
            }
            bantu->next=baru;
      }
      cout<<"\nData Terisi"<<endl;
}

void hapusdepan(){
        TNode *hapus;
      int d;
      if (IsEmpty()==0){
              if(head!=NULL){
                    hapus=head;
                  d=hapus->data;
                  head=hapus->next;
                delete hapus;
            }
      cout<<d<<"Terhapus"<<endl;
      }else cout<<"\nMasih Kosong"<<endl;
}

main(){
        int pil;
      do{
              int n;
            cout<<"1. Insert Depan "<<endl;
            cout<<"2. Insert Belakang " <<endl;
            cout<<"3. Display"<<endl;
            cout<<"4. Hapus"<<endl;
            cout<<"5. Exit"<<endl;
            cout<<"\nMasukan Pilihan (1-5): ";
      cin>>pil;

              switch(pil){
            case 1:
            cout<<"Masukan Data : "; cin>>n;
            IsEmpty();
            insertdepan(n);
            break;
            case 2:
            cout<<"Masukan Data : "; cin>>n;
            IsEmpty();
            insertbelakang(n);
            break;
            case 3:
            IsEmpty();
            tampil();
            break;
            case 4:
            IsEmpty();
            hapusdepan();
            break;
            }
      }while(pil!=5);
      getch();
      return 0;
}

0 komentar

Posting Komentar