11. Singly Circular Linked List Data Structure + Algorithm = Program UNIV. INDONUSA Esa Unggul
UNIV. INDONUSA Esa Unggul Apakah Circular? Sebuah list dikatakan circular jika node terakhirnya menunjuk ke node awal. List kosong dapat digambarkan sbb: head NULL UNIV. INDONUSA Esa Unggul
Apakah Circular? (Lanjutan) Jika ditambahkan dua buah node maka secara berurutan akan terlihat gambar sebagai berikut: head 1456 head 59 1456 UNIV. INDONUSA Esa Unggul
UNIV. INDONUSA Esa Unggul Data Structure Di bawah ini diberikan struktur untuk suatu singly circular linked list : struct node{ int data; node* next; }; UNIV. INDONUSA Esa Unggul
Data Structure (Lanjutan) class linklist{ private: node* head; public: linklist(){ head = NULL; } // operasi }; UNIV. INDONUSA Esa Unggul
Operasi pada Linked List Di bawah ini diberikan algoritma untuk menambahkan sebuah node sebagai node terdepan dan menampilkan semua node dalam list: void linklist::additem(int d){ // create a node node* newlink = new node; newlink->data = d; if(NULL==head){ // empty list newlink->next = newlink; } UNIV. INDONUSA Esa Unggul
Operasi pada Linked List (lanjutan) else{ // search last node node* prev = head, *current = head->next; while(current != head){ prev = current; current = current->next; } // prev is pointer to the last node newlink->next = head; prev->next = newlink; head = newlink; UNIV. INDONUSA Esa Unggul
Operasi pada Linked List (lanjutan) void linklist::display(){ if(NULL!=head){ node* current = head; while(current->next != head){ cout << current->data << endl; current = current->next; } UNIV. INDONUSA Esa Unggul
UNIV. INDONUSA Esa Unggul Hi Einstein! Buat algoritma (member fungsi) untuk menghapus sebuah node pada sebuah singly-circular-linked-list . UNIV. INDONUSA Esa Unggul