Академический Документы
Профессиональный Документы
Культура Документы
BAB 1 PENGENALAN
(Purpose, Conditions and Return)
Rujukan 1.1 KOD PSEUDO(PSEUDOCODE) • Tujuan (Purpose)
• Merupakan perwakilan kod yang diperlukan untuk – Pernyataan pendek berkenaan tujuan algorithma
algorithma – Memberitahu proses secara keseluruhan/umum
• Hampir menyerupai bahasa Inggeris • Keadaan (Condition)
Gilberg, Forouzan, Data Structure: A – Terdapat 2 jenis iaitu Precondition dan
• Bahasa Inggeris + kod berstruktur
Pseudocode Approach with C, PWS Postcondition
Kepala Algoritma (Algorithm Header)
Publisher – Precondition: senaraikan keperluan untuk
• Menerangkan parameter & senarai mana-mana parameter
ISBN 0-534-951236 pre & post conditions – Postcondition: kenalpasti tindakan yang diambil
• Kebanyakan pengaturcara yang menggunakan dan status untuk mana-mana output parameter
algorithma hanya melihat maklumat pada header, • Kembali (Return)
bukan keseluruhan algorithma – Kadangkala tidak diperlukan
• Maklumat header mestilah lengkap – Jika ada nilai yang perlu dikembalikan
DDC 2423 STRUKTUR DATA 1 DDC 2423 STRUKTUR DATA 2 DDC 2423 STRUKTUR DATA 3
DDC 2423 STRUKTUR DATA 4 DDC 2423 STRUKTUR DATA 5 DDC 2423 STRUKTUR DATA 6
2.3.1 Cipta Senarai (Create List) 2.3.2 Tambah Nod (Insert Node)
b) Tambah nod pada
• Memperuntukkan a)Tambah nod ke senarai
permulaan senarai
ingatan bagi nod yang kosong (Insert into
empty list) (add node at beginning)
kepala dan setkan
semua komponen • Jika head adalah null,
nod kepada nilai- bermakna senarai adalah • Semak penuding
nilai yang kosong predecessor, jika null
bersesuaian • Setkan alamat nod baru maka kita berada pada
pada list head pointer dan permulaan senarai
• Rujuk algoritma 3-1
ms 75 pastikan link field adalah
null
DDC 2423 STRUKTUR DATA 13 DDC 2423 STRUKTUR DATA 14 DDC 2423 STRUKTUR DATA 15
DDC 2423 STRUKTUR DATA 16 DDC 2423 STRUKTUR DATA 17 DDC 2423 STRUKTUR DATA 18
REV 00 REV 00 REV 00
2.3.4 Search List 2.3.5 Retrieve Node
b) Linked list delete-general case
• Algoritma 3-3 • Guna carian nod untuk tempatkan data dalam
senarai
ms 83
• Jika data ditemui, ia akan pindahkan data ke
• Guna
ruang output dan kembalikan true
Release (pLoc)
• Jika tidak ditemui, kembalikan false
• Algoritma 3-5 ms 87
DDC 2423 STRUKTUR DATA 19 DDC 2423 STRUKTUR DATA 20 DDC 2423 STRUKTUR DATA 21
2.3.10 Destroy List 2.4 COMPLEX LINKED LIST STRUCTURES b) Circularly-Linked List
• Nod terakhir menuding kepada nod pertama
• Nod tidak diperlukan a) Header Nodes dalam senarai
• Hapuskan nod dan ruang ingatan – Lebih kompleks
DDC 2423 STRUKTUR DATA 25 DDC 2423 STRUKTUR DATA 26 DDC 2423 STRUKTUR DATA 27
REV 00 REV 00 REV 00
c) Doubly Linked List i) Doubly-Linked List Insertion ii) Doubly-Linked List Deletion
• Setiap nod mempunyai penuding kepada nod
sebelum dan nod selepasnya
• Guna 2 penuding: B dan F
DDC 2423 STRUKTUR DATA 28 DDC 2423 STRUKTUR DATA 29 DDC 2423 STRUKTUR DATA 30
REV 00
BAB 3 STACK REV 00
ii) Pop
REV 00
DDC 2423 STRUKTUR DATA 31 DDC 2423 STRUKTUR DATA 32 DDC 2423 STRUKTUR DATA 33
DDC 2423 STRUKTUR DATA 34 DDC 2423 STRUKTUR DATA 35 DDC 2423 STRUKTUR DATA 36
REV 00 REV 00 Linked list stack operations REV 00
3.2 STACK-LINKED LIST IMPLEMENTATION 3.2.1 Algoritma Timbunan
• 2 struktur data yang berbeza diperlukan: • Terdapat 8 jenis operasi:
– Head: mengandungi metadata dan penuding – Create stack
untuk top – Push stack
– Data node: mengandungi data & link pointer – Pop stack
kepada next node dalam timbunan – Stack top
– Empty stack
– Full stack
– Stack count
– Destroy stack
(Rujuk algoritma pada ms 154Æ 157)
DDC 2423 STRUKTUR DATA 37 DDC 2423 STRUKTUR DATA 38 DDC 2423 STRUKTUR DATA 39
DDC 2423 STRUKTUR DATA 43 DDC 2423 STRUKTUR DATA 44 DDC 2423 STRUKTUR DATA 45
b) Evaluating postfix expressions
REV 00
3.4 ADT-LINKED LIST IMPLEMENTATION
REV 00
BAB 4 QUEUE REV 00
H d if t
DDC 2423 STRUKTUR DATA 49 DDC 2423 STRUKTUR DATA 50 DDC 2423 STRUKTUR DATA 51
REV 00
REV 00 REV 00
4.2 QUEUE-LINKED-LIST DESIGN
DDC 2423 STRUKTUR DATA 55 DDC 2423 STRUKTUR DATA 56 DDC 2423 STRUKTUR DATA 57
DDC 2423 STRUKTUR DATA 61 DDC 2423 STRUKTUR DATA 62 DDC 2423 STRUKTUR DATA 63
REV 00 REV 00 REV 00
–2 perjalanan: 5.2 HOW RECURSION WORKS
• Penyelesaian secara
• Bahagikan masalah dari atas ke bawah Iterative • Mula-mula mesti tahu bagaimana panggilan (call)
berfungsi
• Kemudian dari bawah ke atas – Rujuk Algoritma 6-1 • Apabila program memanggil subrutin, contohnya
• Penyelesaian secara fungsi dalam C, modul semasa akan memberhentikan
rekursif proses seketika dan subrutin yang dipanggil tadi akan
mengawal program tadi
– Rujuk Algoritma 6-2
• Apabila proses pada
– Rujuk rajah subrutin sudah selesai,
di sebelah • Proses akan kembali ke
modul yang memanggilnya
tadi
• Modul tadi akan
meneruskan prosesnya
Call and return
DDC 2423 STRUKTUR DATA 64 DDC 2423 STRUKTUR DATA 65
yang terberhenti tadi
DDC 2423 STRUKTUR DATA 66
DDC 2423 STRUKTUR DATA 79 DDC 2423 STRUKTUR DATA 80 DDC 2423 STRUKTUR DATA 81
REV 00 REV 00 REV 00
a) Preorder Traversal b) Inorder Traversal c) Postorder Traversal
– Penjelajahan pratertib – Penjelajahan tertib – Penjelajahan
– root-->left-->right – left-->root-->right Pascatertib
– Rujuk algoritma 7-2 – Rujuk algoritma 7-3 – left-->right-->root
– Rujuk algoritma 7-4
DDC 2423 STRUKTUR DATA 82 DDC 2423 STRUKTUR DATA 83 DDC 2423 STRUKTUR DATA 84
DDC 2423 STRUKTUR DATA 85 DDC 2423 STRUKTUR DATA 86 DDC 2423 STRUKTUR DATA 87
DDC 2423 STRUKTUR DATA 91 DDC 2423 STRUKTUR DATA 92 DDC 2423 STRUKTUR DATA 93
DDC 2423 STRUKTUR DATA 94 DDC 2423 STRUKTUR DATA 95 DDC 2423 STRUKTUR DATA 96
DDC 2423 STRUKTUR DATA 97 DDC 2423 STRUKTUR DATA 98 DDC 2423 STRUKTUR DATA 99
REV 00 REV 00 REV 00
Rajah 8-2
• Dua vertices pada graf dipanggil adjacent vertices • Darjah (degree) bagi vertex adalah bilangan garis
(bersebelahan) jika ada edge yang menghubung (lines) atau arka yang insiden padanya
kedua-duanya • Luar darjah (outdegree): bilangan arka yang
• Path: adalah jujukan vertices dimana setiap keluar dari vertex
vertices adalah bersebelahan antara satu sama • Dalam darjah (indegree): bilangan arka yang
lain masuk vertex
• Dua vertices dikatakan bersambung (connected) • Contoh (rujuk rajah 8-2(a))
jika ada path antara mereka
– Degree bagi vertex B=3 dan vertex E = 4
– strongly connected
– indegree vertex B=1
– weakly connected Rujuk Rajah 8-2 – outdegree vertex B= 2
– disjoint
DDC 2423 STRUKTUR DATA 100 DDC 2423 STRUKTUR DATA 101 DDC 2423 STRUKTUR DATA 102
• Delete edge
DDC 2423 STRUKTUR DATA 103 DDC 2423 STRUKTUR DATA 104 DDC 2423 STRUKTUR DATA 105
DDC 2423 STRUKTUR DATA 106 DDC 2423 STRUKTUR DATA 107 DDC 2423 STRUKTUR DATA 108
REV 00 REV 00 REV 00
Depth First traversal of a graph 8.3 ABSTRACT DATA TYPE
Breadth First traversal of a tree
• Rujuk lampiran aturcara
– Program Graph 1 (Bab 8)
– Program Graph 2 (Bab 8)
DDC 2423 STRUKTUR DATA 109 DDC 2423 STRUKTUR DATA 110 DDC 2423 STRUKTUR DATA 111
– Pilih dari unsorted list tetapi pilih elemen • Selection sort implementation 9.3 EXCHANGE SORT
terbesar (largest element). Contoh: – Selection sort C code
• Terdiri daripada 2 jenis
• Rujuk lampiran aturcara
1) Bubble sort
–Program Selection Sort (Bab 9)
• Senarai dibahagikan kepada 2 iaitu sorted dan
unsorted
• Smallest element is bubbled from the unsorted
sublist and moved to the sorted sublist
• Dinding akan bergerak satu elemen ke kanan
• Rajah 9-2 & Rajah 9-3
• Rujuk algoritma 11-5
DDC 2423 STRUKTUR DATA 121 DDC 2423 STRUKTUR DATA 122 DDC 2423 STRUKTUR DATA 123
DDC 2423 STRUKTUR DATA 124 DDC 2423 STRUKTUR DATA 125 DDC 2423 STRUKTUR DATA 126
REV 00 Rajah 9-7 dan 9-8 REV 00 REV 00
2) Shell Sort
• Konsep: satu atau lebih data yang telah diisih akan • Versi straight insertion sort yang telah diperbaiki.
diselit (insert) ke lokasi yang betul dalam senarai yang
tersusun • Diberi N elemen, senarai dibahagikan kepada K
• 2 jenis iaitu segmen dimana K adalah increment
1) Straight insertion sort • Setiap segmen mengandungi N/K atau lebih
– Senarai dibahagikan kepada 2 bahagian: sorted dan elemen
unsorted • Rajah 9-9, 9-10 dan 9-11
– Bagi setiap pass, elemen pertama dalam unsorted
• Rujuk algoritma11-2
list akan diselitkan ke lokasi yang sesuai dalam
sorted list
– Rujuk Rajah 9-7 dan 9-8
– Rujuk algoritma 11-1
DDC 2423 STRUKTUR DATA 127 DDC 2423 STRUKTUR DATA 128 DDC 2423 STRUKTUR DATA 129
DDC 2423 STRUKTUR DATA 130 DDC 2423 STRUKTUR DATA 131 DDC 2423 STRUKTUR DATA 132
DDC 2423 STRUKTUR DATA 133 DDC 2423 STRUKTUR DATA 134 DDC 2423 STRUKTUR DATA 135
REV 00 REV 00 Rajah 9-14 REV 00
Rajah 9-13
• Ada 3 jenis iaitu
1) Natural Merge
– Perlukan distribution phase
– Rajah 9-14
2) Balanced Merge
– Tidak perlukan distribution phase
– Rajah 9-15
3) Polyphase Merge
– Fail yang telah digabung akan digunakan
semula sebaik sahaja selesai digabung
– Rajah 9-16
DDC 2423 STRUKTUR DATA 136 DDC 2423 STRUKTUR DATA 137 DDC 2423 STRUKTUR DATA 138
DDC 2423 STRUKTUR DATA 139 DDC 2423 STRUKTUR DATA 140