#include
#include
typedef struct simpul tsimpul;
struct simpul
{
char nilai[20];
tsimpul *selanjutnya;
};
tsimpul *awal = NULL, *akhir = NULL, *data;
void tampilkan(){
tsimpul *b1=awal;
if(awal!=NULL){
cout<<"Isi Data ==> ";
while(b1!=NULL)
{
cout<
nilai;
b1=b1->selanjutnya;
cout<<" ";
}
}else
cout<<"Data Masih Kosong . . . . ";
}
void t_awal(char *in){
data=new simpul;
strcpy(data->nilai,in);
// =in;
data->selanjutnya=NULL;
if(awal==NULL){
awal=akhir=data;
}else{
data->selanjutnya=awal;
awal=data;
}
}
void t_akhir(char *in){
data=new simpul;
strcpy(data->nilai,in);
data->selanjutnya=NULL;
if(awal==NULL)
awal=akhir=NULL;
else{
akhir->selanjutnya=data;
akhir=data;
}
}
void t_tengahh(char *in,char *setelah){
tsimpul *b1=awal;
tsimpul *b2=b1->selanjutnya;
char ada=1;
while (b1 != NULL){
//fungsi dari string.h ^_^v
if (strcmp(b1->nilai,setelah)== 0){
ada=0;
break;
}
b1 = b1->selanjutnya;
if(b1!=NULL)
b2= b2->selanjutnya;
}
if(ada==1){
gotoxy(1,21);
cout<<"Ke Sallahan Data Yang Di Masukkan Tidak Falid";
}else{
data=new simpul;
strcpy(data->nilai,in);
b1->selanjutnya=data;
data->selanjutnya=b2;
if(data->selanjutnya==NULL){
akhir=data;
}
}
}
void ubah_(char *in,char *pos){
tsimpul *b= awal;
char ada=1;
while(b!=NULL){
if(strcmp(b->nilai,pos)== 0){
ada=0;
break;
}
b=b->selanjutnya;
}
if(ada==1){
gotoxy(1,21);
cout<<"Ke Sallahan Data Yang Di Masukkan Tidak Falid";
}else{
strcpy(b->nilai,in);
}
}
void h_awal(){
tsimpul *b1=awal;
if(awal==akhir){
delete awal;
awal=akhir=NULL;
}else{
b1=awal->selanjutnya;
delete awal;
awal=b1;
}
}
void h_akhir(){
tsimpul *b1=awal;
if(awal==akhir){
delete awal;
awal=akhir=NULL;
}else{
while(b1->selanjutnya!=akhir)
b1=b1->selanjutnya;
delete akhir;
b1->selanjutnya=NULL;
akhir=b1;
}
}
void h_tengahh(char *deleta){
tsimpul *b1=awal;
tsimpul *b2=b1->selanjutnya;
char ada=1;
while (b1 != NULL){
if (strcmp(b1->selanjutnya->nilai,deleta)== 0){
ada=0;
break;
}
b1 = b1->selanjutnya;
if(b1!=NULL)
b2=b2->selanjutnya;
}
if(ada==1){
gotoxy(1,21);
cout<<"Ke Sallahan Data Yang Di Masukkan Tidak Falid";
}else{
tsimpul *b3=b2->selanjutnya;
delete b2;
b1->selanjutnya=b3;
if(b1->selanjutnya==NULL){
akhir=data;
}
}
}
main(){
int pil;
atas:
tampilkan();
gotoxy(1,9);cout<<"--Menu--";
gotoxy(1,10);cout<<"1. Tambah Awal ";
gotoxy(1,11);cout<<"2. Tambah Tengah ";
gotoxy(1,12);cout<<"3. Tambah Akhir ";
gotoxy(1,13);cout<<"4. Hapus Awal";
gotoxy(1,14);cout<<"5. Hapus Tengah";
gotoxy(1,15);cout<<"6. Hapus Akhir";
gotoxy(1,16);cout<<"7. Ubah Data";
gotoxy(1,17);cout<<"Masukkan Pilihan Anda : ";
cin>>pil;
char angka[20];
char setelaha[20];
gotoxy(1,19);
switch(pil){
case 1:
cout<<"Masukkan Nama : ";cin>>angka;
t_awal(angka);
break;
case 2:
cout<<"Masukkan Nama : ";cin>>angka;
gotoxy(1,20);cout<<"Di Masukkan Setellah : ";cin>>setelaha;
t_tengahh(angka,setelaha);
break;
case 3:
cout<<"Masukkan Nama : ";cin>>angka;
t_akhir(angka);
break;
case 4:
if(awal!=NULL)
h_awal();
break;
case 5:
char deletaa[20];
gotoxy(1,19);cout<<"Yang Akan Di Hapus : ";cin>>deletaa;
h_tengahh(deletaa);
break;
case 6:
if(awal!=NULL)
h_akhir();
break;
case 7:
cout<<"Masukkan Nama : ";cin>>angka;
gotoxy(1,20);cout<<"Di Masukkan Nilai Yang Akan Dirubah : ";cin>>setelaha;
ubah_(angka,setelaha);
break;
default:
gotoxy(1,21);cout<<"Inputan Salah . . .";
break;
}
goto atas;
}