Latihan UTS Algoritma

Document Sample
Latihan UTS Algoritma Powered By Docstoc
					1. (20 poin) Sebuah array dua dimensi dengan ukuran b baris dan k kolom. Cara
   pengalokasian memori adalah seperti pada gambar. Tuliskan program utama,
   function isiarray untuk memasukkan data berupa bilangan bulat, dan function
   tampil untuk menampilkan data pada matriks tersebut.

      Local stack memory                                        Heap Memory

                arr                                    [0][0]
                                                       [0][1]
                                                           …
                                                     [0][k-1]
                                                       [1][0]
                                                       [1][1]
                                                           …
                                                     [1][k-1]
                                                           …
                                                   [b-1][k-1]

2. (20 poin) Sebuah tabel digunakan untuk menyimpan data berikut :

          NIM           Umur        Tinggi badan       Berat badan
          44070134       20             165                70
          42074324       21             172                56
          …              …               …                  …
          …              …               …                  …
          45078769       19             181                77

   Struct yang digunakan adalah :
              struct tdata {
                 char nim[9];
                 int umur,tinggi,berat;
              };
   Jika jumlah data berjumlah 5 buah, maka untuk memindahkan 5 buah data pada
   tabel diatas ke dalam array yang bersifat dinamis, bisa dilakukan dengan cara
   Array of Pointer of dynamic structure . Tugas Anda :
       a. Tuliskan instruksi untuk mendeklarasikan array dan mengalokasikan
          memori untuk array.
       b. Tuliskan instruksi untuk membebaskan memori (free memory).
       c. Misalkan 5 buah data telah berada dalam array, tuliskan instruksi untuk
          menampilkan 5 buah data tersebut.

3. (10 poin) Jelaskan proses pengurutan data bilangan desimal berikut
   menggunakan LSD Radix Sort (jelaskan dengan gambar bucket berupa linked
   list). Tuliskan juga cara penghitungan jumlah ronde.

                        768, 2134, 326, 815, 1395, 98, 3599
4. (30 poin) Tuliskan instruksi program untuk kasus berikut ini.

      a. Sebuah node berisi data nim yang terdiri dari 8 karakter, nama terdiri dari
         25 karakter, nilai berupa bilangan bulat, dan sebuah pointer yang
         menyimpan alamat node lainnya. Tuliskan pendeklarasian struct untuk
         node tersebut.

      b. Sebuah circular singly linked list dengan node/simpul lebih dari 3
         seperti pada gambar dibawah ini. Tuliskan instruksi untuk menghapus
         seluruh simpul pada linked list tersebut.

                                                                                 1/3
                      head          10       ……         40           50

                             curr                                         tail
      c. Diketahui Singly Linked List sebagai berikut. Data pada SLL selalu terurut
         dari kecil ke besar. Tuliskan instruksi untuk menyisipkan node baru berisi
         data 28.

              head               10
                                                    ……        20         30                      50

                         curr


      d. Diketahui Singly Linked List sebagai berikut. Tuliskan instruksi untuk
         menghapus node yang berisi data 40.

              head               10                 ……       40         50

                         curr               hapus


      e. Diketahui Circular Singly Linked List sebagai berikut. Tuliskan instruksi
         untuk menyisipkan node baru setelah tail.



                         head                10        ……          40                50

                                     curr                                                 tail


      f. Diketahui sebuah Singly Linked List dengan node tidak terurut
         berdasarkan data pada node.

            head                44                ……          15         55

                                                                               tail

          Tuliskan instruksi untuk memindahkan node yang ditunjuk oleh tail
          menjadi head seperti gambar berikut ini.

            head            55                44             ……         15

                                                                              tail
5. (10 poin) Hash table berikut ini menggunakan hash function dengan teknik
   modular arithmetic, dan collision diatasi dengan teknik Linear Probing. Jika hash
   function yang digunakan adalah f(x) = x % 23 :
      a. Jelaskan proses pemasukan data : 098, Richard Schneiderman
      b. Jelaskan proses pemasukan data : 092, Bill Ullman
      c. Jelaskan pencarian data dengan kode 160
      d. Jelaskan pencarian data dengan kode 206

                           Kode                       Nama
                   [0]    023               Kite Bikinsale
                   [1]    160               Brenda Freezer

                                                                                                      2/3
                 [2]
                 [3]
                 [4]
                 [5]
                 [6]   052   Roman Atkinson
                 [7]   075   Sylvy Ester
                 [8]
                 [9]   469   Johny Weizmulles
                [10]   493   Rachel Wise
                [11]   126   John Wine
                [12]   080   Clive Owns
                [13]   078   Stevie Siegel
                [14]
                [15]   153   Matt Demon
                [16]
                [17]   086   Melly Gibson
                [18]   133   James Spider
                [19]
                [20]
                [21]
                [22]   252   Danny Gober

6. (10 poin) Doubly Linked List dengan struct sebagai berikut :
          struct tnode {
             int data;
             struct tnode *next, *prev;
          } ;
          struct tnode *head, *tail, *node, *curr, *temp;

   DLL diatas mempunyai lebih dari dua simpul. Nilai data simpul-simpul tersebut
   telah diurutkan dari nilai terkecil sampai dengan nilai terbesar. Nilai data pada
   simpul yang diacu(ditunjuk) oleh head adalah 10, dan nilai data pada simpul
   yang diacu (ditunjuk) oleh tail adalah 100. Semua simpul mempunyai nilai data
   yang berbeda.
   a. Jika salah satu simpul tersebut mempunyai nilai data 50 dan simpul ini
       berada di antara simpul-simpul lainnya. Tuliskan instruksi-instruksi untuk
       menghapus simpul dengan nilai data 50 tersebut.
   b. Jika akan ditambahkan simpul baru dengan nilai data 88, tuliskan instruksi-
       instruksi untuk menambahkan simpul dengan nilai data 88 tersebut.




                                                                                3/3

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:77
posted:5/3/2012
language:Indonesian
pages:3