Skip to main content

Linked List

                 


Circular Linked List



  • Pengertian dari Circular Linked List adalah suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama) sehingga membentuk sebuah sirkuit. Jadi tidak ada pointer yang menunjuk NULL.
  1. Circular Single Linked List: 
  • Adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Jika Circular Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.Pengertian:Single : artinya field pointer-nya hanya satu buah saja dan satu arah.Linked List : artinya node-node tersebut saling terhubung satu sama lain.Circular : artinya pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar
  • Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data.Pada akhir linked list, node terakhir akan menunjuk ke node terdepan sehingga linked list tersebut berputar.
  • Deklarasi node dibuat dari struct berikut ini:typedef struct TNode{int data;TNode *next;};
  • Pembentukan node baruDigunakan keyword new yang berarti mempersiapkan sebuah node baruberserta alokasi memorinya.TNode *baru;baru = new TNode;baru->data = databaru;baru->next = baru;

    2.  Circular Double Linked List:

dll
  • Circular Double Linked List adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut.Double Linked List Circular pointer next dan prev nya menunjuk ke dirinya sendiri secara circular.Pengertian:Double: artinya field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan nextLinked List: artinya node-node tersebut saling terhubung satu sama lain.Circular: artinya pointer next dan prev-nya menunjuk ke dirinya sendiri
  • Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya & ke node sebelumnyaUntuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke dirinya sendiri.Jika sudah lebih dari satu node, maka pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node sesudahnya.
  • Deklarasi nodeDibuat dari struct berikut ini:typedef struct TNode{int data;TNode *next;Tnode *prev;};
  • Pembentukan node baruDigunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya.TNode *baru;baru = new TNode;baru->data = databaru;baru->next = baru;baru->prev = baru;

  • Doubly Linked List
  • Double Linked List adalah linked list dengan node yang memiliki data dan dua buah reference link (biasanya disebut next dan prev) yang menunjuk ke node sebelum dan node sesudahnya. Pada implementasinya, terdapat dua variasi double linked list yaitu circular dan non-circular layaknya pada single linked list.
  • Insert: Insert First, Insert Last, Insert After / Before
  • Delete: Delete First, Delete Last, Delete Node



1. 






1. 

Comments

Popular posts from this blog

Hashing and Hash Tables, Trees & Binary Tree

1. Hashing Dapat diartikan sebagai aktivitas untuk mengubah suatu objek menjadi serangkaian angka/karakter/sejenisnya. Pada contoh sebelumnya, kita melakukan  hash  pada string menjadi bilangan. Anda mungkin menyadari bahwa tabel T pada contoh sebelumnya bekerja seperti array. Kita seakan-akan dapat melakukan operasi: T["gozali"] = 3; printf("%d\n", T["gozali"]); Pada ilmu komputer, tabel seperti ini disebut sebagai  hash table . Struktur data ini erat kaitannya dengan konsep " key value ".  Key  adalah hal yang menjadi indeks, dan  value  adalah nilai yang berasosiasi dengannya. Pada contoh permasalahan sebelumnya, nama mahasiswa merupakan  key , dan IPK merupakan  value . Fungsi  Hashing Pada bagian sebelumnya, saya memberi contoh fungsi  hashing  sederhana. Sebenarnya fungsi  hashing  itu bebas, terserah Anda ingin mendefinisikannya seperti apa. Namun, diharapkan fungsi  hashing  memiliki ...

Final Review

Cathleen 2301867910 AVL Tree Dalam Binary Search Tree, tinggi maksimal suatu tree adalah N-1, dimana N adalah jumlah node. Dalam melakukan suatu operasi,  Dengan Balanced Binary Search Tree, kita dapat membuat suatu tree dengan tinggi minimum. untuk menetapkan tingginya, kita dapat menggunakan rumus berikut: O(log n) AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi/ level maksimal 1 antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan. Insertion Ada 4 kasus yang biasanya terjadi saat operasi  insert  dilakukan, yaitu : anggap T adalah node yang harus diseimbangkan kembali – Kasus 1 : node terdalam terletak pada subtree kiri dari anak kiri T (left-left) – Kasus 2 : node terdalam terletak pada subtree kanan dari anak kanan T (right-right) – Kasus 3 : node terd...

Heaps and Tries

Heap Struktur data heap adalah sebuah objek array yang dapat dengan mudah divisualisasikan sebagai complete tree. Ada korespondensi satu ke satu diantara elemen array dan node dari tree. tree itu benar-benar penuh pada semua tingkatan kecuali mungkin yang terendah, yang diisi dari kiri sampai titik tertentu. Semua node dari heap juga memenuhi hubungan bahwa nilai kunci pada setiap node pada kurangnya sama besar dengan  nilai pada anak-anaknya. Ini dapat dilihat sebagai sebuah pohon biner dengan dua kendala tambahan: Bentuk property : pohon itu adalah complete binary tree , yaitu semua tingkat tree, kecuali mungkin yang terakhir (paling dalam) sepenuhnya diisi, dan, jika tingkat terakhir tree itu tidak lengkap, maka node pada tingkat itu diisi dari kiri ke kanan. Sifat heap: setiap node lebih besar dari atau sama dengan masing-masing anak sesuai dengan perbandingan predikat yang ditetapkan untuk struktur data. Jenis heap : Min Heap: setiap elemen node adalah lebih k...