1 6 senarai berantai

Upload: ratih-shyu

Post on 13-Oct-2015

38 views

Category:

Documents


0 download

TRANSCRIPT

  • SENARAI BERANTAI(LINKED LIST)Fajrizal

  • Senarai / list adalah :Kumpulan linear sejumlah dataAtau ;Kumpulan komponen yg disusun secara berurutan dengan bantuan pointer.

    Masing-masing komponen dinamakan dengan simpul (node).Setiap simpul dalam senarai berantai terbagi menjadi dua,*bagian pertama disebut medan informasi*bagian kedua disebut medan penyambung ( linked list)

  • Contoh senarai berantai dengan 6 simpul :

    AwalABCDEFMedan informasi dari simpul keduaMedan penyambung dari simpul kedua

  • PENYAJIAN SENARAI BERANTAI2INFOSAMBUNGAN21345678910AwalHabis

    C5A6

    D10B1

    F0

    E8

  • 7NAMANOMOR21345678910TEKANGKSEXSAMBUNGAN111213142EKON

    Toni Subagio1234584/85L9Budiman674586/87L6

    Purwanto700185/86L0Bambang1212383/84L11Estiyati650184/85P13Amir1221183/84L5

    Widodo1211183/84L0

    Danang1243284/85L1

    Jati720186/87L4

  • OPERASI PADA SENARAI BERANTAI1.Menambah SimpulMenggunakan Deklarasi Pointer

    type simpul = ^Data;Data = recordinfo : string;Berikut : Simpul;end;var Elemen: string; Awal, Akhir, Baru : Simpul;

  • ABCDFAwalAkhirBaruABCDFAwalAkhirBaruABCDFAwalAkhirBarua. Menambah di belakang

  • Procedure untuk menambah simpul di belakang :procedure TAMBAH_BELAKANG ( var awal, akhir : simpul;elemen : string);var baru : simpul ;beginnew (baru); baru^.info := elemen ;if awal = nil then senarai masih kosongawal := baruelseakhir^.berikut := baru ;akhir := baru;akhir^.berikut := nilend;

  • ABCDFBaruAkhirABCDFBaruAkhirABCDFBaruAkhirb. Menambah di depanAwalAwalAwal

  • Procedure untuk menambah simpul di depan :procedure TAMBAH_DEPAN ( var awal, akhir : simpul;elemen : string);var baru : simpul ;beginnew (baru); baru^.info := elemen ;if awal = nil then senarai masih kosongakhir := baruelsebaru^.berikut := awal ;awal := baru;end;

  • ABDFAwalAkhirc. Menambah di tengahCBantuBaruABDFAwalAkhirCBantuBaruABDFAwalAkhirCBantuBaru

  • Procedure untuk menambah simpul di tengah :procedure TAMBAH_TENGAH ( var awal, akhir : simpul;elemen : char);var baru, bantu : simpul ;beginnew (baru); baru^.info := elemen ;if awal = nil then senarai masih kosongbeginawal := baru;akhir := baruendelsebegin{ mencari lokasi yg sesuai }bantu := awal;while elemen > baru^.berikut^.info dobantu := bantu^.berikut;{ menyisipkan simpul baru}baru^.berikut := bantu^.berikut ;bantu^.berikut := baru;end;end;

  • 2. Menghapus SimpulABCDEAwalBantuAkhirBCDEAwalAkhira. Menghapus simpul pertamaABCDEBantuAwalAkhir

  • ABCDEAwalBantuAkhirABDEAwalAkhirb. Menghapus simpul di tengah / terakhirHapusABCDEAwalBantuAkhirHapus