Home > Pemprograman > Program Single Linked List Non Circular di bahasa C++

Program Single Linked List Non Circular di bahasa C++

Untuk Membuat Single Linked List non Circular, berikut ini merupakan program nya :

#include <iostream.h> //File Header Iostream
#include <conio.h> //File Header Conio 

typedef struct TNode { //Deklarasi Linked List
int data;   //data bertipe integer
TNode *next; //pointer Next
};  //penutup deklarasi
TNode *head;  //disini menggunakan head sebagai pointer utama dari linked list

void init(){  //Fungsi untuk inisialisasi awal linked list
head=NULL;  //Untuk pertama kali, head bernilai NULL
}

int IsEmpty(){  //Fungsi untuk mengetahui apakah Linked list kosong atau ada isinya
if(head==NULL)  // apabila head==NULL, maka return 1
return 1;
else
return 0;  // Selain itu maka Return 0
}

void insertdepan(int n){ //Fungsi untuk menambahkan data baru (n didapat dari input di program utama (main))
TNode *baru;  //Disini menggunakan baru sebagai pointer TNode nya
baru=new TNode;
baru->data=n;  //pointer baru->data berisi nilai variabel n
baru->next=NULL;  // pointer baru->next berisi NULL
if(IsEmpty()==1){ //periksa apakah linked list bernilai, jika return 1(tidak bernilai), maka akan mengeksekusi perintah hingga ‘}’
head=baru; //Nilai head= Nilai baru
head->next=NULL;
}
else {   // Jika return 0(linked list bernilai), maka akan mengeksekusi perintah berikut hingga ‘}’
baru->next=head;
head=baru;
}
cout<<”Data Terisi”;
}

void insertbelakang(int n){    //Fungsi untuk insert Belakang(Menambahkan data di belakang data lama)
TNode *baru,*bantu;  //Pointer yang digunakan yaitu baru dan 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<<”Data Terisi”;
}

void tampil(){   //Fungsi untuk menampilkan linked list yang telah di input / di delete
TNode *bantu;  //pointer yang digunakan yaitu bantu
bantu=head;  // Nilai bantu= Nilai yang ada di head
if(IsEmpty()==0){  // periksa apakah return 0(bernilai)
while(bantu!=NULL){ //Selama bantu tidak sama dengan NULL, maka di eksekusi
cout<<bantu->data<<endl;  // tampilkan di monitor nilai bantu->data
bantu=bantu->next;  //Nilai bantu= nilai bantu selanjutnya
}
}
else
cout<<”Masih Kosong”<<endl;
}

void hapusdepan(){ //Fungsi untuk menghapus Nilai paling depan
TNode *hapus;
int d;
if(IsEmpty()==0){  //periksa apakah return 0(ada nilai)
if(head!=NULL){ // jika head tidak sama dengan Null maka :
hapus=head;  // pointer hapus= head
d=hapus->data;  //nilai dari d = nilai dari hapus->data
head=hapus->next;  // Nilai head sekarang berisi nilai hapus->next
delete hapus;  //fungsi untuk menghapus nilai yang ada  di pointer hapus
}
cout<<d<<” Terhapus”<<endl;
}
else
cout<<”Masih Kosong”<<endl;
}

main(){  // Fungsi Utama dari program
int pil;
do{
clrscr();
int n;
cout<<”1.Insert Depan”<<endl;
cout<<”2.Insert Belakang”<<endl;
cout<<”3.Display”<<endl;
cout<<”4.Delete”<<endl;
cout<<”5.Exit”<<endl;
cout<<”Masukan Pilihan Anda :”;pil=getche();
switch(pil){
case’1′: clrscr();
cout<<”Masukan data :”;cin>>n;
IsEmpty();
insertdepan(n);
break;
case’2′: clrscr();
cout<<”Masukan data :”;cin>>n;
IsEmpty();
insertbelakang(n);
break;
case’3′: clrscr();
IsEmpty();
tampil();
break;
case’4′: clrscr();
IsEmpty();
hapusdepan();
break;
}
getch();
}while(pil!=’5′);
return 0;
}

About these ads
Categories: Pemprograman
  1. albert
    October 21, 2012 at 1:01 pm | #1

    kok programnya tidak bisa dijalankan ya mas? tulisannya 1>D:\Albert\Semester 3\Struktur Data\LinkedList\Debug\LinkedList.exe : fatal error LNK1120: 1 unresolved externals

    btw saya menggunakan visual studio 2010

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s