Diktat_Prosedural_09_ADTRepresentasiListLinier

jika ada alokasi gagal hasilnya list kosong dan

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: list yang sama.*/ /* Tidak ada alokasi/dealokasi elemen */ List FCopyList (List L ); /* Mengirimkan list yang merupakan salinan L */ /* dengan melakukan alokasi. */ /* Jika ada alokasi gagal, hasilnya list kosong dan */ /* semua elemen yang terlanjur di-alokasi, harus didealokasi */ void CpAlokList (List Lin, List * Lout); /* I.S. Lin sembarang. */ /* F.S. Jika semua alokasi berhasil,maka Lout berisi hasil copy Lin */ /* Jika ada alokasi yang gagal, maka Lout=Nil dan semua elemen yang terlanjur dialokasi, didealokasi */ /* dengan melakukan alokasi elemen. */ /* Lout adalah list kosong jika ada alokasi elemen yang gagal */ void Concat (List L1, List L2, List * L3); /* I.S. L1 dan L2 sembarang */ /* F.S. L1 dan L2 tetap, L3 adalah hasil konkatenasi L1 & L2 */ /* Jika semua alokasi berhasil, maka L3 adalah hasil konkatenasi*/ /* Jika ada alokasi yang gagal, semua elemen yang sudah dialokasi */ /* harus di-dealokasi dan L3=Nil*/ /* Konkatenasi dua buah list : L1 & L2 menghasilkan L3 yang “baru” */ /* Elemen L3 adalah hasil alokasi elemen yang “baru”. */ /* Jika ada alokasi yang gagal, maka L3 harus bernilai Nil*/ /* dan semua elemen yang pernah dialokasi didealokasi */ void Concat1 (List * L1, List * L2, List * L3); /* I.S. L1 dan L2 sembarang */ /* F.S. L1 dan L2 kosong, L3 adalah hasil konkatenasi L1 & L2 */ /* Konkatenasi dua buah list : L1 dan L2 */ /* menghasilkan L3 yang baru (dengan elemen list L1 dan L2)*/ /* dan L1 serta L2 menjadi list kosong.*/ /* Tidak ada alokasi/dealokasi pada prosedur ini */ Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 3 Okt 2011 12 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB void SplitList (List *L1, List * L2, List L); /* I.S. L mungkin kosong */ /* F.S. Berdasarkan L, dibentuk dua buah list L1 dan L2 */ /* L tidak berubah: untuk membentuk L1 dan L2 harus alokasi */ /* L1 berisi separuh elemen L dan L2 berisi sisa elemen L */ /* Jika elemen L ganjil, maka separuh adalah NbElmt(L) div 2 */ #endif Latihan Soal Latihan Bahasa C: 1. Buatlah sebuah modul list dengan representasi sama di atas, tetapi InfoType adalah float. Modifikasi apa yang harus dilakukan? 2. Bagaimana jika dibutuhkan misalnya modul list lain, yang intormasinya adalah string, karena list akan dipakai untuk menyimpan kata-kata yang akan dijadikan kata dalam sebuah kamus? Elemen list dalam hal ini harus terurut menurut abjad. Buatlah modul ini. Latihan Bahasa Ada: 1. Terjemahkan modul ADT list1.h menjadi paket list. Pelajari baik-baik kesulitan yang timbul akibat batasan kompatibilitas TYPE yang sangat ketat dalam bahasa Ada. 2. Buatlah sebuah paket list dengan elemen generik, sehingga instansiasi infotype dapat dilakukan sesuai dengan kebutuhan. Latihan Struktur Data: Dalam Diktat “Pemrograman Fungsional”, didefinisikan struktur “Set” atau “Himpunan” berdasarkan list: Himpunan adalah sebuah list dengan elemen yang nilainya “unik”. Buatlah sebuah modul ADT Himpunan dalam bahasa C dan bahasa Ada, dengan list yang direpresentasi secara berkait dan kontigu. Definisikan semua operator himpunan yang mungkin dibutuhkan. Spesifikasi harus dibuat se-spesifik mungkin sesuai dengan implementasi bahasa. Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 3 Okt 2011 13...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online