Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Dr. Anto Satriyo Nugroho, M.Eng
Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
LINKED LIST.
Pertemuan 2 STRUKTUR DATA LINKED LIST
Linked List dan Double Linked List
LINKED LIST Single Linked List.
LINKED LIST.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
Linked List Entin Martiana.
Single Linked List.
Queue.
QUEUE (antrian).
STRUKTUR DATA (6) single linked list non circular
Operasi pada pohon biner
Single Linked List Yuliana Setiowati, S.Kom.
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
Algoritma & Struktur Data Linked List Evangs Mailoa.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
LINKED LIST by Yohana N.
Struktur Data List Linear : Linked List (Double Linkedlist)
Linear Data Structures (Linked List). Node Link atau pointer data field.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Algorithm and Data Structures.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
Linear List.
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Pertemuan 13 Graph + Tree jual [Valdo] Lunatik Chubby Stylus.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Struktur Data (Data Structure) – IS 2313
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
LINK LIST “Suatu cara menyimpan data dengan terstruktur sehingga programmer dapat secara otomatis menciptakan suatu tempat baru didalam memori komputer.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Pertemuan 9 Stack dengan Linked-list
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List
4. Linked List (List Linier)
8. Singly Linear Linked List
LINKED LIST by Yohana N.
Single Linked List.
Dynamic Array and Linked List
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Algoritma dan Struktur Data
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
Algoritma dan Struktur Data
11. Singly Circular Linked List
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Algoritme dan Stuktur Data
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
STRUKTUR DATA LINKED LIST
Algoritma dan Struktur Data
Variable Static & Linked List
Algoritma dan Struktur Data
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Algoritma dan Struktur Data Pertemuan 7 Linked List

Definitions Linked List Struktur data yang terdiri atas sekumpulan data bertipe sama Memperhatikan urutan Array Apa perbedaannya?

Array vs linked list Banyaknya anggota Banyaknya elemen array ditentukan di awal & jumlahnya tetap Elemen linked list dibuat di memori ketika dibutuhkan (ingat pertemuan 6). Jumlahnya dinamis, dapat bertambah dan berkurang sesuai keperluan Cara mengakses elemen Elemen array diakses lewat indeks Untuk mengakses elemen linked list, harus dilakukan penelusuran elemen list

Struktur linked List pHead A B C Node (elemen) linked list saling berkait melalui pointer. Bagian next sebuah node menunjuk alamat node selanjutnya pHead: pointer yang menunjuk node pertama

Struktur linked List Node terakhir menunjuk NULL pHead A B C Node terakhir menunjuk NULL Setiap node terdiri atas Isi data Next, yaitu pointer ke node selanjutnya pada list

Struktur Sebuah Node struct node { //bagian data tipedata data 1; … tipedata data n; //pointer ke node selanjutnya struct node *next; }; typedef struct node node;

Deklarasi head Sebelum membuat linked list, perlu dideklarasikan dan diinisialisasikan head, yaitu pointer yang menunjuk node pertama dari linked list node *pHead = NULL;

Operasi dasar linked list Menambah sebuah node. Menghapus sebuah node. Mencari sebuah node. List tranversal

Menambahkan node pada linked list Terdapat empat tahap untuk menambah node linked list:  Membuat node baru. Mendapatkan node yang terletak sebelum node baru disisipkan (pPre) Atur next node baru agar menunjuk node sesudah posisi penyisipan. Atur next pPre agar menunjuk node baru.   Nilai (pPre) dapat berisi : it can contain the address of a node (i.e. you are adding somewhere after the first node – in the middle or at the end) it can be NULL (i.e. you are adding either to an empty list or at the beginning of the list)

Menambahkan node ke list kosong Before: Code: pNew -> next = pHead; // set link to NULL pHead = pNew;// point list to first node After: 39 pNew pHead pPre 39 pNew pHead pPre

Menambahkan node ke awal list Before: Code (same): pNew -> next = pHead; // set link to NULL pHead = pNew;// point list to first node After: 39 pNew pHead pPre 75 124 39 pNew pHead pPre 75 124

Menambahkan node di tengah list Before: Code pNew -> next = pPre -> next; pPre -> next = pNew; After: 64 pNew pPre 55 124 pNew 64 55 124 pPre

Menambahkan node akhir list Before: Code pNew -> next = NULL; pPre -> next = pNew; After: pNew 144 55 124 pPre pNew 144 55 124 pPre

Kode untuk menambah data ke linked list Untuk menambah data pada linked list, harus diketahui head pointer (pHead), pointer yang menunjuk node sebelum tempat penyisipan (pPre) data yang akan disisipkan (item). //insert a node into a linked list struct node *pNew; pNew = (struct node *) malloc(sizeof(struct node)); pNew -> data = item; if (pPre == NULL){ //add before first logical node or to an empty list pNew -> next = pHead; pHead = pNew; } else { //add in the middle or at the end pNew -> next = pPre -> next; pPre -> next = pNew;

Menghapus node dari linked list Untuk menghapus sebuah node: Cari node yang akan dihapus (pCur) dan node pendahulunya (pPre). Ubah pPre->next agar menunjuk pCur->next. Hapus pCur menggunakan fungsi free

Menghapus node pertama dari linked list Before: Code: pHead = pCur -> next; free(pCur); After: pHead pPre 75 124 pCur pHead Recycled 124 pPre pCur

Menghapus node dari linked list – kasus umum Before: Code: pPre -> next = pCur -> next; free(pCur); After: 75 124 96 pPre pCur 75 124 Recycled pPre pCur

Kode untuk menghapus node dari linked list Untuk menghapus node dari linked list, harus diketahui head pointer (pHead), node yang akan dihapus (pCur), serta pendahulunya, //delete a node from a linked list if (pPre == NULL) //deletion is on the first node of the list pHead = pCur -> next; else //deleting a node other than the first node of the list pPre -> next = pCur -> next; free(pCur).

Mencari node yang mengandung data tertentu dari linked list Operasi insert dan delete membutuhkan pencarian pada list untuk menentukan posisi penyisipan atau pointer yang menunjuk data yang akan dihapus //search the nodes in a linked list pPre = NULL; pCur = pHead; //search until the target value is found or the end of the list is reached while (pCur != NULL && pCur -> data != target) { pPre = pCur; pCur = pCur -> next; } //determine if the target is found or ran off the end of the list if (pCur != NULL) found = 1; else found = 0;

Traversing a Linked List mengunjungi semua node yang ada pada list dari head sampai node terakhir //traverse a linked list Struct node *pWalker; pWalker = pHead; printf(“List contains:\n”); while (pWalker != NULL){ printf(“%d ”, pWalker -> data); pWalker = pWalker -> next; }

Tugas Coba & Pelajari source code pertemuan7.cpp