gabungan linkedlist dan buble sort

<$html>
<$head>
<$title>Struktur Data Linked List<$/title>
<$/head>
<$body>
<$script language = "JavaScript">
<$!--

function LinkedList()
{
this._panjang = 0;
this._kepala = null;
}

LinkedList.prototype =
{
constructor: LinkedList,

//Membuat Metode untuk Menambah Data Kedalam List
Tambah: function (data)
{
//Membuat Node List
var node = {data: data, next: null}, NodeTanda;

//Periksa Isi List
if (this._kepala === null)
{
this._kepala = node;
}
else
{
NodeTanda = this._kepala;
while (NodeTanda.next)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.next = node;
}
this._panjang++
},


//Membuat metode Untuk Menunjuk Item 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;
}
},


//Membuat metode Untuk Membuang Elemen List
Buang: function (index)
{
if (index > -1 && index <$ this._panjang)
{
var NodeTanda = this._kepala, previous, i = 0;
if (index === 0)
{
this._kepala = NodeTanda.next;
}
else
{
while (i++ <$ index)
{
previous = NodeTanda;
NodeTanda = NodeTanda.next;
}

previous.next =NodeTanda.next;
}
this._panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},


//Membuat metode Untuk Mengetahui Jumlah Elemen List
Ukuran: function()
{
return this._panjang;
},


//Membuat metode Untuk Membentuk Array
toArray: function()
{
var result = [],
NodeTanda = this._kepala;

while (NodeTanda)
{
result.push (NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},


//Membuat metode Untuk Konversi ke String
toString: function()
{
return this.toArray().toString();
}

}
var list = new LinkedList ();


list.Tambah("3");
list.Tambah("2");
list.Tambah("1");
list.Tambah("4");


document.write("Isi Linked List <$br>");
document.write("--------------- <$br>");
for (i=0; i<$4; i++)
{
document.write(list.Item(i) + "<$br>");
}
document.write("--------------- <$br>");

document.write("Isi Linked List Awal = " +list.Ukuran() + "<$br>");
document.write ("<$br>")


document.write("Isi Linked List to Array =" +list.toArray());
document.write ("<$br>")


document.write("Data String Linked List Awal =" +list.toString());



function Urutkan (form)
{
DataKosong = false;
DataInputan = form.Data.value;
inputData = DataInputan.split(",");
for (var i = 0; i <$ inputData.length; i++)
{
inputData[i] = parseInt (inputData[i], 10);
if (isNaN(inputData[i]))
{
DataKosong = true;
break;
}
}

inputData = bubbleSort(inputData, 0, inputData.length - 1);
if (DataKosong)
{
alert("Silakan Entri Dulu Data, Pisahkan dengan tanda Koma");
form.Data.focus();
}
else
form.Hasil.value = DataString(inputData, 0);
}

function DataString (toArray, Angka)
{
if ((toArray.length - 1) >= Angka)
return (toArray[Angka] + "," + DataString(toArray,(Angka +

1)));
else
return "";
}

function bubbleSort (toArray, Mulai, MulaiBaru)
{
for (var i = MulaiBaru - 1; i >= Mulai; i--)
{
for (var j = Mulai; j <$= i; j++)
{
if (toArray[j+1] <$ toArray[j])
{
var DataTemporer = toArray[j];
toArray[j] = toArray[j+1];
toArray[j+1] = DataTemporer;
}
}
}

return toArray;
}




<$/script>



<$body>
<$center>
<$form>
Masukan Deretan Angka, Pisahkan dengan Koma :
<$hr>
<$input type=text name=Data size=30 value= >
<$br>
<$br>
<$input type=button value="Urutkan"

OnClick="Urutkan(this.form)">
<$br>
<$br>
<$br>
Hasil Pengurutan :
<$hr>
<$input type=text name=Hasil size=30>
<$/form>
<$/center>

<$/body>
<$/html>
0 komentar:

Labels

Blogumulus by Roy Tanck and Amanda Fazani

Followers


Ngobrol yuu...!!


ShoutMix chat widget

Waktu