Struktur Data
Posted by : samosir
on 00.05
1.
Buatlah
masing-masing materi diatas dengan menggunakan sistem Menu !
Kode Untuk Menu
Double Linked List :
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef struct node *simpul ;
struct node
{
char Isi;
simpul kanan;
simpul kiri;
};
void sisip_depan (simpul &DL, char
elemen);
void Sisip_Tengah1 (simpul &DL,char
elemen1, char elemen2);
void Sisip_Tengah2 (simpul &DL,char
elemen1, char elemen2);
void Sisip_Belakang(simpul &DL, char
elemen);
void Hapus_Depan (simpul &DL);
void Hapus_Belakang (simpul &DL);
void Hapus_Tengah (simpul &DL, char
elemen);
void pilihan(simpul &DL,int pilih);
void cetak(simpul DL);
main()
{
int
pilih;
simpul DL=NULL;
do
{
clrscr();
cout<<"======================================="<<endl;
cout<<"=== Laporan Praktikum Struktur Data
==="<<endl;
cout<<"======================================="<<endl<<endl;
cout<<" MENU DOUBLE LINKEDLIST
"<<endl<<endl;
cout<<" 1. Tambah Depan "<<endl;
cout<<" 2. Tambah Belakang "<<endl;
cout<<" 3. Tambah Tengah1 "<<endl;
cout<<" 4. Tambah Tengah2 "<<endl;
cout<<" 5. Hapus Depan "<<endl;
cout<<" 6. Hapus Belakang "<<endl;
cout<<" 7. Hapus Tengah "<<endl;
cout<<" 8. CETAK "<<endl;
cout<<" 9. Selesai "<<endl<<endl;
cout<<" Pilihan No : ";
cin>>pilih;
pilihan(DL,pilih);
}
while(pilih <= 9);
return 0;
}
void sisip_depan (simpul &DL, char
elemen)
{
simpul baru;
baru
= (simpul)malloc(sizeof(simpul));
baru->Isi =elemen;
baru->kanan =NULL;
baru->kiri;
if (DL ==NULL)
DL=baru;
else
{
baru->kanan =DL;
DL->kiri =baru;
DL=baru;
}
}
void Sisip_Tengah1 (simpul &DL,char
elemen1, char elemen2)
{
simpul bantu,baru;
baru
= (simpul) malloc(sizeof(simpul));
baru->Isi = elemen1;
baru->kanan =NULL;
baru->kiri =NULL;
if (DL==NULL)
cout<<"list
kosong........."<<endl;
else if (DL->kanan ==NULL)
cout<<"list hanya satu simpul......\n";
else
{
bantu =DL;
while(bantu->kanan->Isi !=elemen2) bantu=bantu->kanan;
baru->kanan=bantu->kanan;
baru->kiri=bantu;
bantu->kanan->kiri =baru;
bantu->kanan=baru;
}
}
void Sisip_Tengah2 (simpul &DL,char
elemen1, char elemen2)
{
simpul bantu,baru;
baru
= (simpul) malloc(sizeof(simpul));
baru->Isi = elemen1;
baru->kanan =NULL;
baru->kiri =NULL;
if (DL==NULL)
cout<<"list kosong........."<<endl;
else
{
bantu =DL;
while(bantu->Isi !=elemen2) bantu=bantu->kanan;
baru->kanan=bantu->kanan;
baru->kiri=bantu;
bantu->kanan->kiri =baru;
bantu->kanan=baru;
}
}
void Sisip_Belakang(simpul &DL, char
elemen)
{
simpul bantu,baru;
baru
= (simpul)malloc(sizeof(simpul));
baru->Isi=elemen;
baru->kanan=NULL;
baru->kiri=NULL;
if(DL==NULL)
DL=baru;
else
{
bantu=DL;
while(bantu->kanan !=NULL)
bantu=bantu->kanan;
bantu->kanan=baru;
baru->kiri=bantu;
}
}
void Hapus_Depan (simpul &DL)
{
simpul Hapus;
if(DL==NULL)
cout<<"likend list
kosong.........."<<endl;
else
{
Hapus=DL;
DL=DL->kanan;
DL->kiri=NULL;
Hapus->kanan=NULL;
free(Hapus);
}
}
void Hapus_Belakang (simpul &DL)
{
simpul bantu,Hapus;
if(DL==NULL)
cout<<"likend list
kosong.........."<<endl;
else
{
bantu=DL;
while(bantu->kanan->kanan !=NULL) bantu=bantu->kanan;
Hapus=bantu->kanan;
bantu->kanan =NULL;
Hapus->kiri =NULL;
free(Hapus);
}
}
void Hapus_Tengah (simpul &DL, char
elemen)
{
simpul bantu,Hapus;
if(DL==NULL)
cout<<"likend list kosong.........."<<endl;
else
{
bantu=DL;
while(bantu->kanan->Isi !=elemen) bantu=bantu->kanan;
Hapus=bantu->kanan;
bantu->kanan->kanan->kiri =bantu;
bantu->kanan=bantu->kanan->kanan;
Hapus->kanan=NULL;
Hapus->kiri =NULL;
free(Hapus);
}
}
void pilihan(simpul &DL,int pilih)
{
char elemen,elemen1,elemen2;
if(pilih==1)
{
cout<<" Masukkan Huruf = ";cin>>elemen;
sisip_depan(DL,elemen);
}
else if(pilih==2)
{
cout<<" Masukkan Huruf =
";cin>>elemen;
Sisip_Belakang(DL,elemen);
}
else if(pilih==3)
{
cetak(DL);
cout<<"\n Masukkan Huruf = ";cin>>elemen1;
cout<<"\n Masukkan Huruf Sebelum =
";cin>>elemen2;
Sisip_Tengah1(DL,elemen1,elemen2);
}
else if(pilih==4)
{
cetak(DL);
cout<<"\n Masukkan Huruf = ";cin>>elemen1;
cout<<"\n Masukkan Huruf sesudah =
";cin>>elemen2;
Sisip_Tengah2(DL,elemen1,elemen2);
}
else if(pilih==8)
cetak(DL);
else if(pilih==5)
Hapus_Depan(DL);
else if(pilih==6)
Hapus_Belakang(DL);
else if(pilih==7)
{
cetak(DL);
cout<<" Masukkan Bilangan Tengah Yang Ingin Dihapus =
";
Hapus_Tengah(DL,elemen);
}
else
cout<<" Selesai";
}
void cetak(simpul DL)
{
simpul bantu;
if(DL==
NULL )
cout<<"list
kosong......"<<endl;
else
{
bantu = DL;
cout<<" Isi Linked List : ";
while (bantu->kanan != NULL)
{
cout<<bantu->Isi<<"<==>";
bantu=bantu->kanan;
}
cout<<bantu->Isi;
}
getch();
}
|
Hasil :
·
Penyisipan
Simpul
·
Penghapusan
Simpul
Kode Untuk Menu
Single Linked List :
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef struct node *simpul ;
struct node
{
char isi;
simpul next;
};
void sisip_depan(simpul &L, char
elemen);
void sisip_belakang(simpul &L, char
elemen);
void sisip_tengah1(simpul &L, char
elemen1, char elemen2);
void sisip_tengah2(simpul &L, char
elemen1, char elemen2);
void Hapus_Depan(simpul &L);
void Hapus_Belakang(simpul &L);
void Hapus_Tengah(simpul &L, char
elemen);
void pilihan(simpul &L,int pilih);
void cetak(simpul L);
main()
{
int
pilih;
simpul
L=NULL;
do
{
clrscr();
cout<<"======================================="<<endl;
cout<<"===
Laporan Praktikum Struktur Data ==="<<endl;
cout<<"======================================="<<endl<<endl;
cout<<" MENU SINGLE LINKEDLIST
"<<endl<<endl;
cout<<" 1. Tambah Depan "<<endl;
cout<<" 2. Tambah Belakang "<<endl;
cout<<" 3. Tambah Tengah1 "<<endl;
cout<<" 4. Tambah Tengah2 "<<endl;
cout<<" 5. Hapus Depan "<<endl;
cout<<" 6. Hapus Belakang "<<endl;
cout<<" 7. Hapus Tengah "<<endl;
cout<<" 8. CETAK "<<endl;
cout<<" 9. Selesai "<<endl<<endl;
cout<<" Pilihan No : ";
cin>>pilih;
pilihan(L,pilih);
}
while(pilih <= 9);
return 0;
}
void
sisip_depan(simpul &L, char elemen)
{
simpul baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen;
baru->next = NULL;
if(L==
NULL)
L=baru;
else
{
baru->next = L;
L=baru;
}
}
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;
}
}
void sisip_tengah1(simpul &L, char
elemen1, char elemen2)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen1;
baru->next = NULL;
if(L==
NULL )
cout<<"list
kosong......"<<endl;
else if (L->next ==NULL)
cout<<"list hanya satu
simpul......\n";
else
{
bantu = L;
while(bantu->next->isi != elemen2) bantu=bantu->next;
baru->next = bantu->next;
bantu->next = baru;
}
}
void sisip_tengah2(simpul &L, char
elemen1, char elemen2)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen1;
baru->next = NULL;
if(L==
NULL )
cout<<"list
kosong......"<<endl;
else if(L->next==NULL)
cout<<"list hanya satu
simpul......\n";
else
{
bantu = L;
while(bantu->isi != elemen2) bantu=bantu->next;
baru->next = bantu->next;
bantu->next = baru;
}
}
void Hapus_Depan(simpul &L)
{
simpul Hapus;
if(L==NULL)
cout<<"Linked List Kosong..";
else
{
Hapus=L;
L=L->next;
Hapus->next=NULL;
free(Hapus);
}
}
void Hapus_Belakang(simpul &L)
{
simpul bantu, Hapus;
if(L==NULL)
cout<<"Linked List Kosong..";
else
{
bantu=L;
while(bantu->next->next !=NULL) bantu=bantu->next;
Hapus=bantu->next;
bantu->next=NULL;
free(Hapus);
}
}
void Hapus_Tengah(simpul &L, char
elemen)
{
simpul bantu, Hapus;
if(L==NULL)
cout<<"Linked List Kosong..";
else
{
bantu=L;
while(bantu->next->isi !=elemen) bantu=bantu->next;
Hapus=bantu->next;
bantu->next=bantu->next->next;
Hapus->next=NULL;
free(Hapus);
}
}
void pilihan(simpul &L,int pilih)
{
char elemen,elemen1,elemen2;
if(pilih==1)
{
cout<<" Masukkan Huruf =";cin>>elemen;
sisip_depan(L,elemen);
}
else if(pilih==2)
{
cout<<" Masukkan Huruf
=";cin>>elemen;
sisip_belakang(L,elemen);
}
else if(pilih==3)
{
cetak(L);
cout<<"\n Masukkan Huruf =";cin>>elemen1;
cout<<"\n Masukkan Huruf Sebelum
=";cin>>elemen2;
sisip_tengah1(L,elemen1,elemen2);
}
else if(pilih==4)
{
cetak(L);
cout<<"\n Masukkan Huruf =";cin>>elemen1;
cout<<"\n Masukkan Huruf sesudah =";cin>>elemen2;
sisip_tengah2(L,elemen1,elemen2);
}
else if(pilih==8)
cetak(L);
else if(pilih==5)
Hapus_Depan(L);
else if(pilih==6)
Hapus_Belakang(L);
else if(pilih==7)
{
cetak(L);
cout<<" Masukkan Bilangan Tengah Yang Ingin Dihapus =
";
Hapus_Tengah(L,elemen);
}
else
cout<<" Selesai";
}
void
cetak(simpul L)
{
simpul bantu;
if(L==
NULL )
cout<<"list
kosong......"<<endl;
else
{
bantu = L;
cout<<" Isi Linked List : ";
while (bantu->next != NULL)
{
cout<<bantu->isi<<"-->";
bantu=bantu->next;
}
cout<<bantu->isi;
}
getch();
}
|
Hasil :
·
Penyisipan
Simpul :
·
Penghapusan
Simpul :
Langganan:
Komentar (Atom)
Zippo Samosir








Recent Comments