Select Menu

Ads

Random Posts

Cari Blog Ini

Diberdayakan oleh Blogger.

Arsip Blog

Summary

Circular Single Linked List, Doubly Linked List, & Circular Doubly Linked List Stack & Queue Hashing Table & Binary Tree Bin...

Lorem 1

Technology

Circle Gallery

Shooting

Racing

News

Lorem 4

  1. Circular Single Linked List, Doubly Linked List, & Circular Doubly Linked List
  2. Stack & Queue
  3. Hashing Table & Binary Tree
  4. Binary Search Tree

Circular Single Linked List
• In circular, last node contains a pointer to the first node
• We can have a circular singly linked list as well as a circular doubly linked list.
• There is no storing of NULL values in the list
 
Advantages of Circular Linked Lists:
1) Any node can be a starting point.
2) Useful for implementation of queue.
3) Circular lists are useful in applications to repeatedly go around the list.
4) Circular Doubly Linked Lists are used for implementation of advanced data structures like Fibonacci Heap.

 

Doubly Linked List
Double/Doubly linked list (DLL) or two-way linked list is a linked list data structure with
two link, one that contain reference to the next data and one that contain reference to the
previous data.
 
Advantages over singly linked list:
1) A DLL can be traversed in both forward and backward direction.
2) The delete operation in DLL is more efficient if pointer to the node to be deleted is given.
3) We can quickly insert a new node before a given node.
Disadvantages over singly linked list:
1) Every node of DLL Require extra space for an previous pointer.
2) All operations require an extra pointer previous to be maintained.


Doubly Linked List: Insertion 
A node can be added in four ways:
1) At the front of the DLL.
2) After a given node.
3) At the end of the DLL.
4) Before a given node.
 

Doubly Linked List: Deletion
There are 4 conditions we should pay attention when deleting:
1) The node to be deleted is the only node in linked list.
2) The node to be deleted is head.
3) The node to be deleted is tail.
4) The node to be deleted is not head or tail.


Circular Doubly Linked List
Circular Doubly Linked List has properties of both doubly linked list and circular linked list in
which two consecutive elements are linked or connected by previous and next pointer and
the last node points to first node by next pointer and also the first node points to last node
by previous pointer.
 

Stacks Concept

A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle. In the pushdown stacks only two operations are allowed: push the item into the stack, and pop the item out of the stack. A stack is a limited access data structure - elements can be added and removed from the stack only at the top. push adds an item to the top of the stack, pop removes the item from the top. A helpful analogy is to think of a stack of books; you can remove only the top book, also you can add a new book on the top.A stack is a recursive data structure. Here is a structural definition of a Stack:
 
A. Hashing Table :
Hashing table adalah struktur data yang digunakan dalam penyimpanan atau menampung data sementara dan memiliki tujuan untuk mempercepat pencarian kembali dari banyak data yang disimpan.

Operasi-operasi yang ada dalam hashing table :
1. Insert.
2. Search.
3. Delete.

Distributed Hash Tables are distributed data structures supporting put() and get() primitives on key-value pairs. Most DHT implementations can locate an object in O(logn) network operations, where n is the number of nodes of the DHT, and provide a fault-tolerant way to access large amounts of data. The keyspace is the set of all possible keys. Each node stores a subset of key-value pairs among the keyspace. We say a node N is authority for the key k if it stores its data. Each node also gets assigned an identifier from the keyspace. The DHT defines a distance function between keys. Typically a node N is authority for keys close to its identifier according to that distance. In our study, we do not need the put() operation. The get(k) operation returns the value associated with a key k, performing a lookup in the network, to locate a node that is authority for k. For that purpose a suitable routing algorithm is used, with each node storing a routing table based on the distance among node identifiers.

Hash Table and Binary Tree

Hashing Table and Binary Tree
A. Hashing Table :
Hashing table adalah struktur data yang digunakan dalam penyimpanan atau menampung data sementara dan memiliki tujuan untuk mempercepat pencarian kembali dari banyak data yang disimpan.
Operasi-operasi yang ada dalam hashing table :
1. Insert.
2. Search.
3. Delete.

Kelebihan hashing table ialah :
1. Lebih cepat mengakses data dan lebih sedikit menggunakan memory.
2. Kecepatan dalam searchingin, deletions, maupun sertions relatif sama.


B. Binary Tree
Binary Tree adalah tree yang mempunyai syarat bahwa tiap node atau bagian hanya boleh memiliki maksimal dua (2) subtree atau anak dan kedua subtree atau anak tersebut harus terpisah atau tidak boleh menjadi satu.

Terdapat tipe Binary tree yaitu :
a).Perfect Binary Tree = binary tree yang setiap levelnya memiliki kedalaman yang sama.
b).Complete Binary Tree =binary tree yang setiap levelnya kecuali yang kemungkinan terakhir, terisi dan setiap nodenya paling panjang ke kiri.Perfect Binary Tree termasuk dengan Complete Binary Tree.
c).Skewed Binary Tree = binary tree yang memiliki setiap node paling banyak 1 child
d).Balanced Binary Tree = binary tree yang dimana tidak ada leaf yang paling jauh dari root dibanding leaf lainnya.

Operasi-operasi yang ada di dalam Binary Tree :
  1. Empty : Memeriksa apakah binary tree masih kosong. 2. Clear : Mengosongkan binary tree yang sudah ada. 3. Create : Membentuk binary tree baru yang masih kosong. 4. Insert : Memasukkan sebuah node ke dalam tree. 5. Find : Mencari root, parent, left subtree, atau right subtree dari suatu node. 6. Update : Mengubah isi dari node yang ditunjuk oleh pointer. 7. DeleteSub : Menghapus sebuah subtree.
8. Retrieve : Mengetahui isi dari node yang ditunjuk pointer. 9. Characteristic : Mengetahui karakteristik dari suatu tree. 10. Traverse : Mengunjungi seluruh node-node pada tree.

Ada tiga cara traverse : Pre Order, In Order, dan Post Order :

1. PreOrder : cetak data / tree, mengunjungi subtree kiri, mengunjungi subtree kanan
2. InOrder : mengunjungi subtree kiri, cetak data / tree, mengunjungi subtree kanan
3. Post Order : mengunjungi subtree kiri, mengunjungi subtree kanan, cetak data / tree
#Stack Operation

Push(x)  : Menambah data daru yang paling atas.
Pop()     : Sama seperti Push tetapi menambah data yang terakhir dimasukan.
Top()     : Mengambil data yang paling atas.

#Prefix, Infix, Postfix

Infix      : opd opr opd | 4 * 10.
Prefix    : opr opd opd | * 4 10.
Postfix  : opd opd opr | 4 10 *.

#Circular Queue

Biasanya digunakan atau dipakai dalam OS.

#Deques 

Adalah Double Deck Queue dia bisa push sebalah kiri dan kanan, ini biasa dipakai oleh customer service.

Input restricted deque : pushnya dibatasi hanya boleh satu.
Output restricted deque : outputnya dibatasi hanya boleh satu.

#Priority Queue

Biasanya digunakan oleh bank.

#BreadthFirst Search

Bisa digunakan di Multimarketing dan hierarki.

Pada pertemuan kedua ini saya mempelajari tentang Linked List, nah linked list ini adalah struktur data yang terdiri dari urutan catatan data sehingga setiap catatan ada bidang yang berisi referensi ke catatan berikutnya dalam urutan. Dan linked terdiri dari dua (2) tipe yaitu :
1. Single Linked List
2. Double Linked List


Contoh daftar yang simpulnya berisi dua bidang:
nilai integer dan tautan ke simpul berikutnya.
Linked list yang simpulnya hanya berisi satu tautan ke simpul lain disebut daftar tertaut tunggal.

Single lingked list: untuk membuat single linked list ini kita harus membuat node struktur terlebih dahulu contoh :


struct tnode {
  int value;
  struct tnode *next;
};
struct tnode *head = 0;
sumber : binusmaya