diff --git a/DoublyLinkedList.go b/DoublyLinkedList.go index 7ebf0d9..bd8adf9 100644 --- a/DoublyLinkedList.go +++ b/DoublyLinkedList.go @@ -1,5 +1,5 @@ /* - Doubly Linked List + Doubly Linked List Interface */ package main @@ -312,29 +312,112 @@ func (d *DLL) PrintTailToHead() { func main() { d := NewDLL() + fmt.Println("Kondisi Awal DLL:") d.PrintHeadToTail() // empty + + fmt.Println() + fmt.Println("Masukan string world dari depan:") d.InsertFirst(&Node{"world", nil, nil}) // "world" + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Masukan string hello dari depan:") d.InsertFirst(&Node{"hello", nil, nil}) // "hello" "world" + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Masukan string ! dari belakang:") d.InsertLast(&Node{"!", nil, nil}) // "hello" "world" "!" + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Masukan integer(13) ke posisi kedua(1,ingat index mulai dari 0):") d.InsertNth(&Node{13, nil, nil}, 1) // "hello" 13 "world" "!" + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Masukan float(3.14) ke posisi empat(3,ingat index mulai dari 0):") d.InsertNth(&Node{3.14, nil, nil},3) // "hello" 13 "world" 3.14 "!" + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Cetak DLL dari depan ke belakang (head to tail):") d.PrintHeadToTail() // "hello" 13 "world" 3.14 "!" + + + fmt.Println() + fmt.Println("Cetak DLL dari belakang ke depan (tail to head):") d.PrintTailToHead() // "!" 3.14 "world" 13 "hello" + + + fmt.Println() + fmt.Println("Hapus yang paling depan(head):") d.DeleteFirst() // 13 "world" 3.14 "!" + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Hapus yang paling belakang(tail):") d.DeleteLast() // 13 "world" 3.14 + d.PrintHeadToTail() + + + fmt.Println() + fmt.Println("Hapus yang posisi kedua(1,ingat index mulai dari 0):") d.DeleteNth(1) // 13 3.14 d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Hapus semuanya:") d.DeleteAll() // empty d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Masukkan 5 integer dari belakang:") for i := 0; i < 5; i++ { d.InsertLast(&Node{i, nil, nil}) + d.PrintHeadToTail() } // 0 1 2 3 4 + fmt.Println() + fmt.Println("Kondisi DLL sekarang:") d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Pindahkan posisi 4(3, index dari 0) ke depan") d.MoveNthToFirst(3) // 3 0 1 2 4 + d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Pindahkan posisi 3(2, index dari 0) ke belakang") d.MoveNthToLast(2) // 3 0 2 4 1 + d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Pindahkan posisi 1(0, index dari 0) ke posisi 3(2)") d.MoveNthToNth(0,2) // 0 2 3 4 1 + d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Pindahkan posisi 3(2, index dari 0) ke posisi 5(4)") d.MoveNthToNth(2,4) // 0 2 4 1 3 + d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Pindahkan posisi 5(4, index dari 0) ke posisi 1(0)") d.MoveNthToNth(4,1) // 0 3 2 4 1 + d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Pindahkan posisi 4(3, index dari 0) ke posisi 1(0)") d.MoveNthToNth(3,0) // 4 0 3 2 1 d.PrintHeadToTail() + + fmt.Println() + fmt.Println("Kondisi akhir DLL:") + d.PrintHeadToTail() } diff --git a/SinglyLinkedList.go b/SinglyLinkedList.go index fa6b9b0..b584515 100644 --- a/SinglyLinkedList.go +++ b/SinglyLinkedList.go @@ -1,5 +1,5 @@ /* - Singly Linked List + Singly Linked List Interface */ package main @@ -260,26 +260,86 @@ func (s *SLL) Print() { func main() { s := NewSLL() + fmt.Println("Kondisi Awal DLL:") s.Print() // empty + + fmt.Println() + fmt.Println("Masukan integer(1) dari depan:") s.InsertFirst(&Node{1, nil}) // 1 + s.Print() + + fmt.Println() + fmt.Println("Masukan string hello dari depan:") s.InsertFirst(&Node{"hello", nil}) // "hello" 1 + s.Print() + + fmt.Println() + fmt.Println("Masukan string # dari belakang:") s.InsertLast(&Node{"#", nil}) // "hello" 1 "#" + s.Print() + + fmt.Println() + fmt.Println("Masukan float 13.9 dari belakang:") s.InsertLast(&Node{13.9, nil}) // "hello" 1 "#" 13.9 + s.Print() + + fmt.Println() + fmt.Println("Masukan integer(14) ke posisi N yaitu 4(3, index mulai dari 0):") s.InsertNth(&Node{14, nil},3) // "hello" 1 "#" 14 13.9 s.Print() + + + fmt.Println() + fmt.Println("Hapus Head:") s.DeleteFirst() // 1 "#" 14 13.9 + s.Print() + + fmt.Println() + fmt.Println("Hapus Tail:") s.DeleteLast() // 1 "#" 14 + s.Print() + + fmt.Println() + fmt.Println("Hapus Posisi N yaitu 2(1, index mulai dari 0):") s.DeleteNth(1) // 1 14 s.Print() + + fmt.Println() + fmt.Println("Hapus semuanya:") s.DeleteAll() // empty s.Print() + + fmt.Println() + fmt.Println("Masukan 5 integer dari belakang(tail):") for i := 0; i < 5; i++ { s.InsertLast(&Node{i, nil}) - } // 0 1 2 3 4 + s.Print() + } // 0 1 2 3 4 + + fmt.Println() + fmt.Println("Kondisi saat ini:") s.Print() + + fmt.Println() + fmt.Println("Pindahkan posisi n yaitu 4(3, index mulai dari 0) ke depan:") s.MoveNthToFirst(3) // 3 0 1 2 4 + s.Print() + + + fmt.Println() + fmt.Println("Pindahkan posisi n yaitu 2(1, index mulai dari 0) ke tail/belakang:") s.MoveNthToLast(1) // 3 1 2 4 0 + s.Print() + + + fmt.Println() + fmt.Println("Pindahkan posisi n yaitu 3(2, index mulai dari 0) ke posisi n yaitu 5(4, index mulai dari 0):") s.MoveNthToNth(2,4) // 3 1 4 0 2 + s.Print() + + + fmt.Println() + fmt.Println("Pindahkan posisi n yaitu 4(3, index mulai dari 0) ke posisi n yaitu 2(1, index mulai dari 0):") s.MoveNthToNth(3,1) // 3 0 1 4 2 s.Print() }