#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
typedef struct node *simpul;
struct node
{
char isi;
simpul next;
};
//menggunakan prototype function
void Sisip_Belakang(simpul &L, char elemen );
void Hapus_Depan(simpul &L);
void Cetak(simpul L);
//function main
main()
{
char huruf, ulang, yt;
simpul L = NULL; //pastikan bahwa L kosong
int i, pilih;
cout<<"===================================="<<endl;
cout<<"==Operasi Pada Singel Linked List=="<<endl<<endl;
atas:
cout<<"\nPILIHAN MENU\n";
cout<<"------------------------------------\n";
cout<<" 1. Sisip belakang \n";
cout<<" 2. Hapus simpul depan \n";
cout<<" 3. Setelah hapus simpul \n";
cout<<" 4. Cetak \n";
cout<<"--------------------------------------\n";
cout<<"Apa yang anda inginkan = " ; cin>>pilih;
if (pilih==1){
//sisip belakang
cout<<"\nPenyisipan simpul\n\n";
for(i=1; i<=3; i++)
{
cout<<"Masukan huruf : ";cin>>huruf;
Sisip_Belakang(L , huruf );
}
Cetak(L);
}
if(pilih==2){
//hapus simpul depan
cout<<"\nSetelah Hapus Simpul "<<endl;
Hapus_Depan(L);
Cetak(L);
cout<<"\nSetelah Hapus Simpul "<<endl;
Hapus_Depan(L);
Cetak(L);
cout<<"\nSetelah Hapus Simpul "<<endl;
Hapus_Depan(L);
Cetak(L);
cout<<"\nPenyisipan simpul\n\n";
for(i=1; i<=3; i++)
{
cout<<"Masukan huruf : ";cin>>huruf;
Sisip_Belakang(L , huruf );
}
Cetak(L);
}
if(pilih==3){
cout<<"\nSetelah Hapus Simpul "<<endl;
Hapus_Depan(L);
Cetak(L);
cout<<"\nSetelah Hapus Simpul "<<endl;
Hapus_Depan(L);
Cetak(L);
}
if(pilih==4){
Cetak(L);
}
cout<<"\n\nAnda ingin mengulang lagi ? [Y/T] "; cin>>yt;
if (yt == 'Y' || yt == 'y')
goto atas;
else if(yt=='T' || yt=='t')
cout<<"\n";
cout<<"------------Allhamdullilah Selesai----------"<<endl;
getch();
}
//finction sisip simpul di belakang
void Sisip_Belakang(simpul &L ,char elemen )
{
simpul bantu,baru;
baru=(simpul)malloc (sizeof(simpul));
baru->isi=elemen;
baru->next=NULL;
if(L==NULL)
L=baru;
else
{
bantu= L;
while(bantu->next != NULL)
bantu = bantu->next;
bantu->next=baru;
}
}
//function mencetak isi linked list
void Cetak(simpul L)
{
simpul bantu;
if(L==NULL)
cout<<"linked list kosong.........\n";
else
{
bantu=L;
cout<<"\nisi linked list : ";
while(bantu->next !=NULL)
{
cout<<bantu->isi<<"->";
bantu=bantu->next;
}
cout<<bantu->isi;
}
}
//function hapus simpul depan
void Hapus_Depan(simpul &L)
{
simpul Hapus;
if(L==NULL)
cout<<"linked list kosong...........\n";
else
{
Hapus=L;
L=L->next;
Hapus->next=NULL;
free(Hapus);
}
}
Tidak ada komentar:
Posting Komentar