IF2030_Proc_09_VariasiListLinier_bgn2

1 2011 2012 20 bahasan bahasan 2 buatlah adt list

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: 2011-2012 20 Bahasan Bahasan - 2 • Buatlah ADT list dengan elemen ADT list dengan elemen berpointer ganda + driver: – Representasi fisik: berkait dengan pointer fisik: berkait dengan pointer – Penunjuk First dan Last 11/02/11 IF2030/Sem. 1 2011-2012 21 Rep. Fisik dengan Pointer #define Nil NULL typedef int infotype; typedef struct tElmtList *address; typedef struct tElmtList { struct tElmtList infotype info; address prev; address next; } ElmtList; ElmtList; /* Definisi list : */ /* List kosong : First = Nil and Last = Nil */ /* Setiap elemen dengan address P dapat diacu Info(P), Prev(P), Next(P) */ Next(P) */ typedef struct { address First; address Last; } List; List; /* Selektor */ #define Info(P) (P)->info #define Prev(P) (P)->prev #define Next(P) (P)->next Next(P) (P) #define First(L) ((L).First) #define Last(L) ((L).Last) 11/02/11 IF2030/Sem. 1 2011-2012 22 Beberapa Primitif Beberapa Primitif • Buatlah sebagai latihan: sebagai latihan: void InsertFirst (List * L, address P); /* I.S. Sembarang, P sudah dialokasi */ /* F.S. Menambahkan elemen ber-address P sebagai elemen pertama */ void InsertAfter (List * L, address P, address Prec); /* I.S. Prec pastilah elemen list dan bukan elemen terakhir, */ /* P sudah dialokasi */ /* F.S. Insert P sebagai elemen sesudah elemen beralamat Prec */ void InsertLast (List * L, address P); /* I.S. Sembarang, P sudah dialokasi */ /* F.S. P ditambahkan sebagai elemen terakhir yang baru, */ 11/02/11 IF2030/Sem. 1 2011-2012 23 Beberapa Primitif Beberapa Primitif • Buatlah sebagai latihan: sebagai latihan: void DeleteFirst (List * L, address * P); /* I.S. List tidak kosong */ /* F.S. P adalah alamat elemen pertama list sebelum penghapusan */ /* Elemen list berkurang satu (mungkin menjadi kosong) */ /* First element yg baru adalah suksesor elemen pertama yang lama */ void DeleteLast (List * L, address * P); /* I.S. List tidak kosong */ /* F.S. P adalah alamat elemen terakhir sebelum dummy pada list sebelum penghapusan */ /* Elemen list berkurang satu (mungkin menjadi kosong) */ void DeleteAfter (List * L, address * Pdel, address Pr...
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