Struktur
Data (SAK 1107)
Tutorial
1
1. Apakah yang di maksudkan dengan Struktur Data ?
- ialah satu model matematik atau yang logik bagi organisasi data tertentu. Di mana jenis berstruktur iaitu satu struktur yang terdiri daripada gabungan data berjenis lain dan ini membolehkan operasi yang tertentu dilakukan terhadapnya.
2. Nyatakan Operasi yang dilakukan keatas sturuktur data dan terangkan.
a) pengeluaran
- mencari setiap rekod sekurang-kurangnya sekali.
b) gelintaran
- mencari lokasi rekod berpandukan nilai kunci.
c) penyesipan
- menambahkan rekod baru kedalam struktur data
d) penghapusan
- mengeluarkan rekod dari struktur data.
3. Diberi senarai berpaut seperti berikut.
A B C D
X
Tuliskan algoritma yang akan menghapuskan nod ketiga dalam senarai. Andaikan nod operasi dalam senarai startptr.
Algoritma
Jenis (item = startptr – B)
Preptr = startptr;
startptr = startptr – newptr;
Jika tidak
preptr = startptr;
ptrsemasa = startptr – nextprt;
ulangi selagi (ptr semasa ! = NULL && ptr semasa – B / item).
Preptr = ptrsemasa;
Ptrsemasa = ptrsemasa – nextptr;
[Akhir ulangan]
preptr – nextptr = ptr – nextptr;
(ptrsemasa)
[akhir Jika]
[akhir Jika]
tamat.
4. Nyatakan kebaikan tatasusunan.
a) mudah
b) storan digunakan sepenuhnya tanpa ada ruang kosong.
c) Capaian secara rawak dalam masa yang diperlukan.
5. Kirakan saiz tatasusunan bagi BARANG [31..52]
a) Jawapan :
LB = 31, UB= 52
Panjang = LB – UB + 1
= 52 – 31 + 1
=22#
6. Mencetak tahun dengan tiada pekerja baru pada tahun tersebut.
a). i. Ulang untuk K = 1
ii. jika tahun [k] = = 0;
cetak k;
iii. tamat.
b). memberi nilai N tahun yang tiada pekerja baru pada tahun tersebut.
i. setkan N = 0
ii. ulang untuk k = 1997 hingga 2001
iii. jika tahun [h] := 0
N = N + 1;
iv. tamat.
c). mencari nilai N tahun yang paling ramai pekerja baru pada tahun tersebut.
i. setkan N = 0
ii. ulang untuk K = 1999 hingga 2001
jika Auto[k]>0
setkan NOM :=NOM + 1
[akhir ulangan]
iii. tamat.
7. Base = 300, W = 4, UB = 10, LB = 1, K = 6
Lok(perabot [6]);
= base + 10 (k- LB)
=300 + (4 (6 – 1) )
=300 + 4(5)
=320#
8. Algoritma.
1. set Bulan = 0;
2. ulang untuk k = 1 hingga 12.
3. jika PERABOT [k] > 50
4. setkan bulan = bulan + 1;
5. tamat.
9. Andaikan PEKAN adalah tatasusunan 9 unsur dan hanya mempunyai 7 unsur nama pekan seperti rajah dibawah. Nama-nama yang disusun dalam susunan abjad.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a) bina algoritma jika Asma hendak ditambah kedalam tatasusunan tersebut.
Algoritma ; [hendak tambah]
INSERT (LA, n , k, item )
i). [pengistiharaan Pembilang]
setkan j:= n
ii). ulang langkah 3 dan 4
selagi :J > K
iii). [pindahkan unsure ke- 1 ke bawah]
set LA (J + 1): = LA[J]
iv). [kurangkan pembilang]
J:= J – 1
[akhir ulangan]
v). [masukkan unsur]
set LA [k] : = item
vi). [Reset N]
set LA [n]:= n - 1
vii). tamat.
b) berdasarkan tatasusunan PEKAN yang telah dikemaskinikan, bina algoritma jika kampung Tandek hendak
di keluarkan daripada tatsusunan PEKAN.
Algoritma:
DELETE [LA, n, k, item]
i). Setkan item := LA [k]
ii). Ulang untuk j:= LA [J + I]
[anjukkan unsur ke – (j/1) keatas]
setkan LA[J] := LA [J+i]
[akhir ulangan]
iii). [Reset N]
set n := n-1
iv) tamat.
10. 20 33 90 84 56 34 23 57 10 56
a) isihkan data diatas dengan menggunakan isihan gelombang dan tunjukan.
Langkah 1.
20 < 32 : tiada perubahan
32 < 90 : tiada perubahan
90 > 84 : ada perubahan dan kedudukan
20 33 84 90 56 34 23 57 10 56
90 > 56 : ada perubahan dan tukarkan kedudukan
20 33 84 56 90 34 23 57 10 56
90 > 34 : ada perubahan dan tukarkan kedudukan
20 33 84 56 34 90 23 57 10 56
90 > 23 : ada perubahan dan tukarkan kedudukan
20 33 84 56 23 90 57 10 56
90 > 57 : ada perubahan dan tukarkan kedudukan
20 33 84 56 23 57 90 10 56
90 > 10 : ada perubahan dan tukarkan kedudukan
20 33 84 56 23 57 10 90 56
90 > 56 : ada perubahan dan tukarkan kedudukan
20 33
84 56 23
57 10 56 90
Langkah
2:
20 33 56 85 34 23 57 10 56 90
20 33 56 34 84 23 57 10 56 90
20 33 56 34 23 84 57 10 56 90
20 33 56 34 23 57 84 10 56 90
20 33 56 34 23 57 10 84 56 90
20 33 56 34 23 57 10 56 84 90
Langkah
3:
20 33 34 56 23 57 10 56 84 90
20 33 34 23 56 57 10 56 84 90
20 33 34 23 56 10 57 56 84 90
20 33 34 23 56 10 56 57 84 90
Langkah 4:
20 33 34 23 56 10 56 57 84 90
20 33 23 34 56 10 56 57 84 90
20 33 23 34 10 56 56 57 84 90
Langkah 5:
20 23 33 34 10 56 56 57 84 90
20 23 33 10 34 56 56 57 84 90
Langkah
6:
20 23 10 33 34 56 56 57 84 90
Langkah 7:
20 10 23 33 34 56 56 57 84 90
Langkah
8:
10 20 23 33 34 56 56 57 84 90
b). Lakukan proses larian menggunakan carian dedua jika item yang hendak dicari ialah 56. tunjukan setiap proses
yang berlaku.
10 20 23 33 56 56 57 84 90
andaikan item = 56.
i). mula = 1 akhir = 0
Ten = (mula + akhir )/ 2
= (1 + 10 ) / 2
= 6
è Dengan itu data [Ten ] = 56
ii). nilai mula berubah (mula = 6+1 akhir 10)
Ten = (7 + 10)
= 7
è Data [item ] = 84
iii). 56 >56 :
mula =9 > akhir = 9
Ten = (9 + 9)/2
= 8
è Data [ ten ] = 57
iv). 56 > 56:
mula = 8 > akhir = 8
Ten = (8 + 8) /2
= 8
è Data [ten] = 57
v). 56 < 57:
mula = 8 < akhir = 7
Ten = (8 +7) /2
= 7
è Data [ten] = 56
\item 56 tidak dijumpai sebab mula 7 akhir.
b). berdasarkan tatasusunan NOMBOR yang telah diisih, cari lokasi dengan menggunakan proses carian jika item
yang hendak dicari ialah 20.
10 20 23 33 34 56 56 57 84 90
andaikan item = 20., mula = 1 akhir = 10
i). Ten = (muka + akhir) /2
= ( 1 + 10) /2
= 6
è Data [ten] = 56
ii). 20 < 56 ;
akhir = Ten –1
= 9
Ten = (1 + 9)/ 2
= 5
è Data [ten] = 34
iii). 20 < 34;
akhir = ten – 1
= 4
ten = (1 + 4) /2
= 2
è Data [ten] = 20
\ item 20 berada dibahagi 2.