misi gan, ane mau nanya nih kebetulan ada tugas linked list dimana menunya adalah sbb :
1. Tambah depan
2. Tambah belakang
3. Tambah Tengah
4. hapus depan
5. hapus tengah
6. hapus belakang
7. Tampilkan
yang mau saya tanyakan gimana caranya untuk nambah tengah dan jg hapus tengah ... ini codingan saya :
Spoiler for kuot:
Quote:
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void tambah_tengah();
void hapus_belakang();
void hapus_depan();
void tampil();
struct simpul
{
char nilai[20];
//char nim[9], nama [20];
//int umur;
struct simpul *kiri, *kanan;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;
int main()
{
do
{
cout<<"MENU DOUBLE LINKEDLIST"<<endl;
cout<<"1. Tambah Depan"<<endl;
cout<<"2. Tambah Tengah"<<endl;
cout<<"3. Tambah Belakang"<<endl;
cout<<"4. Hapus Depan"<<endl;
cout<<"5. Hapus Belakang"<<endl;
cout<<"6. Tampilkan"<<endl;
cout<<"7. Selesai"<<endl;
cout<<"Pilihan Anda : ";
cin>>pil;
pilih();
} while(pil!=7);
return 0;
}
void pilih()
{
if(pil==1)
tambah_depan();
else if (pil==2)
tambah_tengah();
else if(pil==3)
tambah_belakang();
else if(pil==4)
hapus_depan();
else if(pil==5)
hapus_belakang();
else if(pil==6)
tampil();
else
cout<<"selesai";
}
void buat_baru()
{
baru=(simpul*)malloc(sizeof(struct simpul));
cout<<"input Nilai : ";cin>>baru->nilai;
//cout<<"input nama : ";cin>>baru->nama;
//cout<<"input umur : ";cin>>baru->umur;
baru->kiri=NULL;
baru->kanan=NULL;
}
void tambah_belakang()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
}
else
{
akhir->kanan=baru;
baru->kiri=akhir;
akhir=baru;
}
cout<<endl<<endl;
tampil();
}
void tambah_depan()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
}
else
{
baru->kanan=awal;
awal->kiri=baru;
awal=baru;
}
cout<<endl<<endl;
tampil();
}
void hapus_depan()
{
if (awal==NULL)
cout<<"Kosong";
else if (awal->kanan==NULL)
{
hapus=awal;
awal=NULL;
akhir=NULL;
free(hapus);
}
else
{
hapus=awal;
awal=hapus->kanan;
awal->kiri=NULL;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void hapus_belakang()
{
if (awal==NULL)
cout<<"Kosong";
else if (awal->kanan==NULL)
{
hapus=awal;
awal=NULL;
akhir=NULL;
free(hapus);
}
else
{
hapus=akhir;
akhir=hapus->kiri;
akhir->kanan=NULL;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void tampil()
{
if (awal==NULL)
cout<<"Kosong";
else
{
bantu=awal;
while(bantu!=NULL)
{
cout<<"Nilai : "<<bantu->nilai << endl;
//cout<<"nama : "<<bantu->nama << endl;
//cout<<"umur : "<<bantu->umur << endl;
bantu=bantu->kanan;
}
}
getch();
}
mohon bantuannya y para master FOPERS ... thx,