class senarai
{ protected
Simpul awal;
Simpul akhir;
public
void inisialisasiSenaraiKosong()
{ awal = null;
akhir = null;
}
int hitungJumlahSimpul()
{ int N = 0;
Simpul bantu;
bantu = awal;
while (bantu!=null)
{ bantu = bantu.kanan;
N++;
}
return(N);
}
void tambahDepan(String NAMA, int UMUR)
{ System.out.println("tambah depan'"+NAMA+"'dilakukan..");
Simpul baru=new Simpul();
baru.ngisiSimpul(NAMA, UMUR);
if (awal==null)//jika senarai masih kosong
{ awal=baru;
akhir = baru;
baru.kiri=null;
baru.kanan=null;
}
else //jika senarai tidak kosong
{ baru.kanan=awal;
awal.kiri=baru;
awal=baru;
awal.kiri=null;
}
}
void tambahBelakang (String NAMA, int UMUR)
{ System.out.println("tambah belakang '"+NAMA+ "'dilakukan. . .");
Simpul baru = new Simpul ();
baru.ngisiSimpul(NAMA, UMUR);
if (awal == null) // jika senari masih kosong
{ awal=baru;
akhir =baru;
baru.kiri=null;
baru.kanan=null;
}
else //jika senari masih kosong
{ baru.kiri=akhir;
akhir.kanan=baru;
akhir=baru;
akhir.kanan=null;
}
}
void tambahTengah(int POSISI, String NAMA, int UMUR)
{ System.out.println("tambah tengah'"+NAMA+"'dilakukan..");
if (awal == null)//jika senarai masih kosong
{ Simpul baru=new Simpul();
baru.ngisiSimpul(NAMA, UMUR);
awal=baru;
akhir=baru;
baru.kiri=null;
baru.kanan=null;
}
else //jika senarai tidak kosong
{ int jumlahSimpul=hitungJumlahSimpul();
if (POSISI==1)
tambahDepan(NAMA,UMUR);
else if (POSISI>jumlahSimpul)
tambahBelakang(NAMA,UMUR);
else
{ Simpul bantu;
bantu=awal;
int N=1;
while ((N<POSISI)&&(bantu!=akhir))
{ bantu=bantu.kanan;
N++;
}
Simpul baru= new Simpul();
baru.ngisiSimpul(NAMA,UMUR);
baru.kiri= baru.kiri;
baru.kiri.kanan=baru;
bantu.kiri=baru;
}
}
}
void cetakSenarai()
{ System.out.print("CETAK:");
if (awal==null)//jika senarai masih kosong
System.out.print("...SENERAI KOSONG...");
else // jika senarai tidak kosong
{ Simpul bantu;
bantu=awal;
while (bantu!=null)
{ bantu.cetakSimpul();
bantu=bantu.kanan;
}
}
System.out.println("");
}
void hapus(String NAMA)
{ if (awal == null)//jika senarai masih kosong
{ System.out.println("senarai kosong menghapus tidak dapat dilakuka");
}
else //jika senarai tidak kosong
{ if (awal.nama.equals(NAMA)) //jiaka nama ditemukan di awal
{ System.out.println("menhaspus "+NAMA+"dilakukan.");
if (awal == akhir) //jika ada hanya sebuah simpul
inisialisasiSenaraiKosong();
else
{ awal=awal.kanan;
awal.kiri=null;
}
}
else if (akhir.nama.equals(NAMA))//jika nama ada di akhir
{ System.out.println("manghapus"+NAMA+"dilakukan.");
akhir=akhir.kiri;
akhir.kanan=null;
}
else //jika nama tidak ditemukan diawal dan akhir
{ simpul bantu;
bantu=awal;
boolean ketemu=false;
while (bantu!=akhir)
{ if (bantu.namaequals(NAMA))
{ System.out.println("menghapus"+NAMA+"dilakukan.");
ketemu=true;
bantu.kanan.kiri=bantu.kiri;
bantu.kiri.kanan=bantu.kanan;
//break;
}
bantu=bantu.kanan;
}
if (ketemu==false)
System.out.println("data'"+NAMA+"'tidak ditemukan");
}
}
}
}
Tidak ada komentar:
Posting Komentar