#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 &PS,char
elemen);
void Cetak(simpul AB);
void Hapus(simpul &AB,char elemen);
main()
{
simpul AB=NULL;
char masukkan,simpul;
int i;
cout<<”\n******Alexander Simanullang ******* “;
cout<<"\nOperasi Single Linked List ";
cout<<"\nProgram Menghapus Simpul ";
cout<<endl<<endl;
for(i=1;i<=8;i++)
{
cout<<"Masukkan Nilai Disisip = ";
cin>>masukkan;
sisip_depan(AB,masukkan);
}
Cetak(AB);
cout<<endl;
cout<<"Hapus Bilangan =";
cin>>simpul;
Hapus(AB,simpul);
Cetak(AB);
getch();
}
void sisip_depan(simpul &AB,char elemen)
{
simpul
baru;
baru=(simpul) malloc (sizeof(simpul));
baru->ISI=elemen;
baru->KANAN=NULL;
baru->KIRI=NULL;
if(AB==NULL)
AB=baru;
else
{
baru->KANAN=AB;
AB->KIRI=baru;
AB=baru;
}
}
void Cetak(simpul AB)
{
simpul bantu;
if(AB==NULL)
cout<<"Linked
List Sedang
Kosong...."<<endl;
else
{
bantu=AB;
cout<<"Isi Linked List
Sekarang : ";
while(bantu->KANAN != NULL)
{
cout<<bantu->ISI<<"
<= => ";
bantu=bantu->KANAN;
}
cout<<bantu->ISI;
}
}
void Hapus(simpul &AB,char elemen)
{
simpul hapus;
if(PS==NULL)
cout<<"likend list sedang
kosong..............";
else
{
hapus=AB;
while(hapus->KANAN != NULL)
hapus=hapus->KANAN;
if(hapus->ISI == elemen)
{
hapus->KIRI->KANAN=NULL;
hapus->KIRI=NULL;
free(hapus);
}
while(AB->KIRI !=NULL)
AB=AB->KIRI;
while(AB->KANAN != NULL)
{
if(AB->ISI== elemen)
{
hapus=AB;
AB=AB->KANAN;
AB->KIRI =NULL;
hapus->KANAN=NULL;
free(hapus);
}
else if(AB->KANAN->ISI == elemen)
{
hapus=AB->KANAN;
AB->KANAN->KANAN->KIRI=AB;
AB->KANAN=AB->KANAN->KANAN;
hapus->KANAN=NULL;
hapus->KIRI=NULL;
free(hapus);
while(AB->KIRI !=NULL)
AB=AB->KIRI;
}
else
AB=AB->KANAN;
}
while(AB->KIRI !=NULL)
AB=AB->KIRI;
}
}
Tidak ada komentar:
Posting Komentar