Thursday, May 27, 2010
Sisip Linked List
Posted by Dendi Prana Yudha in
Kuliah,
Web
<html>
<head>
<title>Sisip Linked List</title>
</head>
<body>
<script language="javascript">
<!--
function linkedlist() {
this.panjang = 0;
this.kepala = null;
}
linkedlist.prototype =
{
constructor : linkedlist,
//Metode untuk menambah data
tambah: function (data) {
var node = {data:data,next:null};
var NodeTanda;
if (this.kepala === null)
{
this.kepala = node;
}
else
{
NodeTanda = this.kepala;
while (NodeTanda.next)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.next = node;
}
this.panjang++;
},
//Metode untuk menampilkan data
item: function(index) {
if (index > -1 && index < this.panjang)
{
var NodeTanda = this.kepala,i = 0;
while(i++ < index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
//Metode untuk membuang data
buang: function(index) {
if (index > -1 && index < this.panjang)
{
var NodeTanda = this.kepala, previous, i = 0;
// Membuang kepala
if (index === 0)
{
this.kepala = NodeTanda.next;
}
else
{
//Mencari index yang tepat
while(i++ < index)
{
previous = NodeTanda;
NodeTanda = NodeTanda.next;
}
previous.next = NodeTanda.next;
}
//decrement panjang
this.panjang--;
//return data
return NodeTanda.data;
}
else
{
return null;
}
},
//Metode untuk menyisipkan data
sisip: function(index,data) {
var node = {data:data,next:null};
var NodeTanda = this.kepala, i = 1;
if (index === 0)
{
node.next = this.kepala;
this.kepala = node;
}
else
{
while (i++ < index)
{
NodeTanda = NodeTanda.next;
}
node.next = NodeTanda.next;
NodeTanda.next = node;
}
this.panjang++;
},
//Metode untuk melihat ukuran panjang linked list
ukuran: function() {
return this.panjang;
},
//Metode untuk merubah ke Array
toArray: function() {
var result = [];
var NodeTanda = this.kepala;
while(NodeTanda) {
result.push(NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
//Metode untuk merubah ke String
toString: function() {
return this.toArray().toString();
}
};
//Fungsi untuk menampilkan isi variabel list
function tampil()
{
for (i=0; i<6; i++)
{
document.write(list.item(i) + "<br>");
}
document.write("<hr>");
}
var list = new linkedlist();
//Menambah data ke variabel pada list
list.tambah("Teknik Informatika");
list.tambah("Teknik Komputer");
list.tambah("Komputer Akutansi");
list.tambah("Computer Nerworking");
list.tambah("Manajemen Informatika");
list.tambah("Sistem Informatika");
document.write("Isi LinkedList : <br>");
tampil();
//Membuang salahsatu isi variabel list
list.buang(1);
document.write("Isi LinkedList : (Setelah data pada index ke-1 dibuang) <br>");
tampil();
//Menyisipkan data ke variabel list
list.sisip(2,"Teknik Nuklir");
document.write("Isi LinkedList : (Setelah menyisipkan data di index ke-2) <br>");
tampil();
document.write("Panjang variabel list adalah = ");
document.write(list.ukuran());
//-->
</script>
</body>
</html>
0 komentar:
Post a Comment
Tinggalkan Komentar Disini